`

两种递归方式实现回文字

阅读更多

条件:回文字为奇数长度

第一种:

import java.util.*;
public class rollback {

    static Vector s;
    public static void main(String[] args)
    {
        rollback a =new rollback();
        s = new Vector();
        String v="123454321";
        for(int i=0;i<v.length();i++)
        {
            s.add(v.charAt(i));
        }
        System.out.println(a.fun(s,0,8,8));
    }


    boolean fun(Vector s,int start,int end,int n)
    {
           if(start==end)
               return true;
           if(s.get(start)==s.get(end))
               return fun(s,start+1,n-start-1,n);

             return false;
    }
}

 

第二种:

import java.util.*;
public class rollback1 { 

    static Vector s; 
    public static void main(String[] args) 
    { 
        rollback1 a =new rollback1(); 
        char[] number = new char[]{'a','b','c','d','c','b','a'}; 
        System.out.println(String.valueOf(fun(number))); 
    }

    static boolean fun(char[] number) 
    { 
        if(number.length%2 == 0) 
            return false; 
        if(number.length== 1) 
            return true; 
        else 
        { 
            if(number[0] != number[number.length - 1]) 
                return false; 
            else 
            { 
                //delete the first element and the last element 
                char[] numberCopy = new char[number.length - 2]; 
                for(int i = 0; i < number.length -2; i ++) 
                    numberCopy[i] = number[i + 1]; 
                
                   return fun(numberCopy); 
            } 
        } 
    } 
} 

 

分享到:
评论

相关推荐

    递归式重命名小助手

    这个小工具支持两种主要的重命名方式:文字替换和添加前缀后缀。文字替换允许用户查找文件名中的特定文本并替换为其他文本,这对于清理文件名中的特殊字符或者统一文件命名格式非常有用。添加前缀和后缀则可以让所有...

    ACM递归文档

    递归方向指的是在递归过程中解决问题的顺序,文档中提到了两种递归方向:“从后往前”和“从前往后”。这两种方向分别对应于递归的回溯和逐步深入,其中“从后往前”是常见的递归方式,即先处理基本情况,然后再返回...

    使用C语言递归与非递归实现字符串反转函数char *reverse(char *str)的方法

    在C语言中,字符串是字符数组,通常以空字符'\0'作为结束标志。反转一个字符串就是将字符串中的字符...在学习过程中,可以尝试对这两种方法进行优化,例如,使用迭代法改进递归实现,或者使用指针操作简化非递归实现。

    用栈实现二叉树先序遍历的非递归算法实践题.doc

    根据提供的文档信息,可以看出文档似乎包含了不相关的文字内容,并且实际有用的信息主要集中在标题和描述中,即“用栈实现二叉树先序遍历的非递归算法”。因此,我们将围绕这一主题展开详细的讨论。 ### 用栈实现...

    基于C语言的递归算法分析.pdf

    递归函数通常包含两个出口:处理特殊情况的出口和处理递归关系的出口。递归函数的执行过程是从基本情况开始,通过递归调用不断缩小问题规模,直到达到可以直接解决的特殊情况,然后再逐层返回至最初的问题规模。 ...

    C语言 递归调用程序和文件系统

    1.分别调试课件中的给定n求Fibonacci(n)递归与非递归函数,并编写测试函数对两种或多种不同方法所需时间进行比较,且当某一轮计算所需时间超过给定最大时间量时(如超过10秒),停止计算。计算过程中要求输出类似...

    字符串通配符(递归)1

    在提供的代码中,`matchstring` 函数采用递归方式实现。其基本思路是逐个比较 `s1` 和 `s2` 中的字符,并根据通配符规则进行匹配: 1. 如果两个字符串都已结束,那么它们匹配,返回 `true`。 2. 如果只有一个字符串...

    tuxingxuedazouye.rar_三维曲线旋转_曲线绘制_简单点消除_绘制交互旋转_递归圆

    6. 两种扫描多边形扫描转换算法实现(扫描线算法为必做,基于求余运算的边缘填充和边标志算法任选一种); 7. 4连通区域的递归种子填充算法,和扫描线种子填充算法,要求种子点(x,y)可交互输入)。 8. 简单三维...

    IOS实现图文混排

    IOS 实现图文混排机制 IOS 实现图文混排机制是 IOS 开发中...IOS 实现图文混排机制是一种非常实用的技术,能够提高用户体验和应用程序的可读性。开发者可以根据实际需要,灵活地使用该机制来实现各种图文混排的功能。

    java编程之递归算法总结

    Java编程之递归算法总结 递归算法是 Java 编程中的一种重要算法,通过调用...递归与循环是两种不同的解决问题的典型思路。当然也并不是说循环效率就一定高于递归效率,但是在大多数情况下,循环效率确实比递归效率高。

    java 和 c# 不同的7个方法 实现 ABCD 全排列

    接下来,我们将深入探讨这两种语言中实现ABCD全排列的7种方法。 1. **回溯法**: 回溯法是一种典型的递归策略,适用于解决约束满足问题。在Java和C#中,我们可以创建一个数组或字符串来保存当前排列,然后递归地...

    jQuery实现不断闪烁文字的方法

    在这个例子中,blink函数通过在fadeOut的回调函数中调用fadeIn,在fadeIn的回调函数中再次调用blink,从而实现对blink函数自身的递归调用,形成了不断重复的动画效果。 具体实现方法如下: ```javascript function...

    jQuery实现参数自定义的文字跑马灯效果

    在当前的Web前端开发中,实现动态的页面效果是常有的需求,其中文字跑马灯效果就是一种非常常见的动态效果,它可以在网页上模拟文字像跑马灯一样滚动的效果。本知识点将会介绍如何使用jQuery来实现一个参数自定义的...

    易语言八种方法实现文本倒转源码.rar

    易语言提供了多种方式来实现这个功能。以下是可能的八种方法: 1. **数组翻转**:创建一个字符数组,将文本转换为数组,然后直接翻转数组的顺序,最后再将数组转换回字符串。 2. **栈操作**:利用栈的“后进先出”...

    用java语言实现的二叉树,输入英文字母,按字母表顺序输出

    在计算机科学中,二叉树是一种特殊的图结构,其中每个节点最多有两个子节点,通常称为左子节点和右子节点。这种数据结构广泛应用于各种算法和数据存储,例如搜索、排序、文件系统等。本话题将详细介绍如何使用Java...

    文字文稿1_esn_PSO_

    这暗示了文档可能涵盖了这两种技术的基本概念,它们的结合方式,以及这种结合在解决问题时的优势和潜在应用。 **标签解析:** "esn" 和 "pso" 是两个关键标签,分别代表 Echo State Network 和 Particle Swarm ...

    JS实现浏览器状态栏文字闪烁效果的方法

    函数flash()通过递归的方式调用自身,每次调用都会检查变量control的值,根据这个值的真假来切换状态栏的显示文字或清空文字,然后再次使用setTimeout()设置下一个定时器,使文字显示状态在两种状态间切换,形成闪烁...

    【swjtu】数据结构第2次作业.docx

    要求:采用递归和非递归(用堆栈)两种算法;输入的整数不允许按单个字符输入。 2. 编写程序,实现中缀表达式化为后缀式输出。已知中缀表达式中操作数全部用小写英文字母表示,运算符只含有+, -, *, /四种,定界符只有...

    求Fibonacci数列问题,本程序中只求20个数,可以自己修改。

    在这个程序中,可能采用了迭代或者动态规划的方法,因为这两种方法适合计算较大的数列,并且对于较小的数值(如20),它们的时间复杂度都能接受。通过分析压缩包中的"5_2"文件,我们可以深入理解作者的具体实现方式...

Global site tag (gtag.js) - Google Analytics