A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Justfeeling 中级黑马   /  2014-9-22 11:07  /  2332 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. /*
  2. * 判断一个字符串是否是对称字符串
  3. * 例如"abc"不是对称字符串,"aba"、"abba"、"aaa"、"mnanm"是对称字符串
  4. */

  5. public class Test1 {

  6.         public static void main(String[] args) {
  7.                
  8.                 String str = null;
  9.                 System.out.println(str + ":" + isSymmetric(str));

  10.                 str = "";
  11.                 System.out.println(str + ":" + isSymmetric(str));

  12.                 // 偶数长度
  13.                 str = "abccba";
  14.                 System.out.println(str + ":" + isSymmetric(str));

  15.                 // 奇数长度
  16.                 str = "abcdcba";
  17.                 System.out.println(str + ":" + isSymmetric(str));

  18.                 str = "abca";
  19.                 System.out.println(str + ":" + isSymmetric(str));

  20.         }

  21.         public static boolean isSymmetric(String str) {

  22.                 if (null == str) {
  23.                         return false;
  24.                 }
  25.                 for (int i = 0; i < str.length() / 2; i++) {
  26.                         // 比较距字符串两头长度相同的字符是否一样
  27.                         if (str.charAt(i) != str.charAt(str.length() - i - 1)) {
  28.                                 return false;
  29.                         }
  30.                 }
  31.                 return true;
  32.         }

  33. }
复制代码


3 个回复

倒序浏览
传说中的回文字符串,曾经接触到的时候用栈来实现的。楼主发这个贴是几个意思?
回复 使用道具 举报
参考一下我写的代码
  1. package com.itheima;

  2. /**
  3. * 第1题:
  4. *                 判断一个字符串是否是对称字符串,例如"abc"不是对称字符串,"aba"、"abba"、"aaa"、"mnanm"是对称字符串
  5. *
  6. *        
  7. *
  8. */

  9. public class Test2 {

  10.         /**
  11.          * @param args
  12.          */
  13.         public static void main(String[] args) {
  14.                
  15.                
  16.                 System.out.println(checkSymmetry("aabcddcbaa"));

  17.         }
  18.        
  19.         public static boolean checkSymmetry(String str){
  20.                 char[] array = str.toCharArray();   //将字符串装换成字符数组
  21.                 int len = array.length;
  22.                 if(len==0 || len==1){        //当字符数组的长度为0或1时,这个字符串不是对称的
  23.                         return false;
  24.                 }
  25.                 int x = 0;       //定义2个指针一个为X指向字符串首
  26.                 int y = len-1;    //一个名称为Y指向字符串尾
  27.                 for(int i=0;i<len/2;i++){
  28.                         if(array[x]!=array[y]){
  29.                                 return false;        //如果发现没有对称的,则返回false
  30.                         }
  31.                         x++;      //将指针向右移动
  32.                         y--;      //将指针向左移动
  33.                 }
  34.                 return true;
  35.                
  36.         }

  37. }
复制代码
回复 使用道具 举报
这个长度不需要分奇数偶数,长度%2,如果是奇数,那么中间的那个数是不用判断的,所以不用管奇数偶数
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马