zoukankan      html  css  js  c++  java
  • 判断回文字符串

    1.设计思想

        先根据提示输入一段String字符串,将String型字符串转化成char[] 型字符串,再确定字符串的第一个字符下标和最后一个字符下标。再写返回值是boolean型的判断两个字符是否相等的方法,把字符串和第一个字符下标和最后一个字符下标作为形参。判断字符是否相等的函数里,依次从字符串两端到中间判断字符是否相等,若相等返回true,否则返回false。

    2.程序流程图

    3.程序源代码

    import java.util.Scanner;
    public class Huiwen {

      public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入一段字符串:");
        String in=scanner.next();//输入字符串
        int w=in.length()-1;//w是字符串最后一个字符的下标
        char[] inn=in.toCharArray();//将String型转换成char[]型
        if(isHuiwen(inn,0,w)==true) {//从两端到中间的字符串都回文
          System.out.println("此字符串是回文字符串");
        }
        else {
          System.out.println("此字符串不是回文字符串");
        }

      }
      static boolean isHuiwen(char[] inn,int t,int w) {//判断两个字符是否相等
        if((w-t)==1||(w-t)==2||(w-t)==0) {//(w-t)==1输入的字符串字符个数为偶数个,(w-t)==2输入的字符串字符个数位奇数个,(w-t)==0输入的字符串只有一个字符
          if(inn[w]==inn[t]){//最中间的两个字符相等
            return true;
          }
          else
            return false;//如果判断两个字符不相等,不用再递归,返回false
        }
        else {
          if(inn[w]==inn[t]) {
            return true &&isHuiwen(inn,t+1,w-1);//如果判断的两个字符相等,在判断靠近中间的两个字符

          }
          else {
            return false;
          }
        }

      }

    }

    4.结果截图

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
  • 相关阅读:
    hdu 5224 Tom and paper 水题
    2015 UESTC 搜索专题N题 韩爷的梦 hash
    2015 UESTC 搜索专题M题 Palindromic String 马拉车算法
    2015 UESTC 搜索专题K题 秋实大哥の恋爱物语 kmp
    2015 UESTC 搜索专题J题 全都是秋实大哥 kmp
    2015 UESTC 搜索专题F题 Eight Puzzle 爆搜
    2015 UESTC 搜索专题E题 吴队长征婚 爆搜
    2015 UESTC 搜索专题D题 基爷的中位数 二分
    2015 UESTC 搜索专题C题 基爷与加法等式 爆搜DFS
    2015 UESTC 搜索专题B题 邱老师降临小行星 记忆化搜索
  • 原文地址:https://www.cnblogs.com/wl2017/p/7653154.html
Copyright © 2011-2022 走看看