• JAVA用递归来判断回文串


    用递归来判断回文串

    思路:

    ①首先如果是空串,一个字符,则判断是回文串

    ②若不满足①,则我们需要对字符串进行递归判断,我们会想到要用第一个字符和最后一个字符进行比较,若相同则,第二个和倒数第二个进行比较,如此循环往复,就会出现一个终点

    ③终点处会出现两种情况,第一种情况:两个不同位置的字符进行比较,第二种情况是:两个相同位置的字符进行比较。因此我们需要找出这个中间值,我们通过分奇偶的方式,算出最终左边要比较的数的下标,若为奇数,左边的下标为:len/2;若为偶数,左边的下标为:len/2

    ④递归的结束条件有了,那么递归的条件是:当首位字符相同时,则递归的是:左边的下标+1,右边的下标-1.若不满足,则直接退出。

    代码:

    package com.java1;
    import java.util.Scanner;
    public class test {
        static String s=new String();
        static int len=0;
        static int k;
    public static void  f(int i,int j)
    {
        if(i==k&&s.charAt(i)==s.charAt(j))//判断结束的条件
        {
            System.out.println("YES");
            return;
        }
        
        if(s.charAt(i)==s.charAt(j))//若满足则进行下一步的递归
            f(i+1,j-1);
        else//若不满足则输出
        {
            System.out.println("NO");
            return ;
        }
    }
        public static void main(String[] args) {
            // TODO Auto-generated method stub
        Scanner in=new Scanner(System.in);
        s=in.nextLine();
        int k=0;
        len=s.length();//获取字符串长度
        if(len%2==0)//通过奇偶个数来找到中间值
            k=len/2-1;//找到中间的下标
        else
            k=len/2;//找到中间的下标
        if(len==1||len==0)//若是空串或只有一个字符
            System.out.println("OK");
        else
        {
            f(0,len-1);//递归计算
        }
        }
    }
  • 相关阅读:
    使用Hibernate需要导入的一些JAR包
    Eclipse+MyEclipse+Tomcat的配置
    ant安装、环境变量配置及验证
    怎样关闭占用80端口的pid为4的进程
    查看80端口是否被占用
    python爬虫-抓取acg12动漫壁纸排行设置为桌面壁纸
    WPF--鼠标右键菜单中的Command命令实现
    WPF-TreeView获取文件夹目录、DataGrid获取目录下文件信息
    IOS学习[Swift中跳转与传值]
    IOS学习【xcode 7新特性url链接】
  • 原文地址:https://www.cnblogs.com/xiaofengzai/p/11577694.html
Copyright © 2020-2023  润新知