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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 清净明诲 中级黑马   /  2014-7-15 22:17  /  2884 人查看  /  14 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

判断一个字符串是否是对称字符串,例如"abc"不是对称字符串,"aba"、"abba"、"aaa"、"mnanm"是对称字符串  ,,,对于这道题毫无思路,求解,谁能帮忙解答下,谢谢啦

14 个回复

倒序浏览
从两端开始比较首位两个字母的是否一样,不一样就表示不是对称
回复 使用道具 举报
定义两个指针,一个从前向后循环,一个从后向前
回复 使用道具 举报
对字符串通过判断长度的单双,根据结果进行切分,对其中一个翻转,在比较。这也是一种思路。不过,还是将2、3楼意见结合一下,注意判断长度应该是比较好的思路。
回复 使用道具 举报
反转一比较就可以了啊,
  1. package com.itheima.test;
  2. /*
  3. * 2.判断一个字符串是否是对称字符串,例如"abc"不是对称字符串,"aba"、"abba"、"aaa"、"mnanm"是对称字符串
  4. *         思路:
  5. *                 1.判断一个字符串是丢对称,也就是说要分割成两部分,且前后都要相等才算对称
  6. *                 2.将字符串反转,判断内容是否相等,相等就是对称
  7. *                 3.用stringbuilder把字符串反转
  8. * */

  9. public class Test2 {

  10.         /**
  11.          * @param args
  12.          */
  13.          public static void main(String[] args)
  14.      {
  15.              String s = "aba";
  16.              //利用JudgeString方法判断字符串是否对称
  17.              JudgeString(s);

  18.      }
  19.      public static void JudgeString(String str)
  20.      {
  21.              StringBuilder sb = new StringBuilder(str);
  22.              //将字符串反转
  23.              sb.reverse();
  24.              //将反转的字符串与原字符串比较
  25.              boolean b= str.equals(sb.toString());
  26.              if(b==true)
  27.                      System.out.println("您输入字符串是对称字符串");
  28.              else
  29.                      System.out.println("您输入字符串是不是对称字符串");
  30.             
  31.                      
  32.      }

  33. }
复制代码
回复 使用道具 举报 1 0
格子、 发表于 2014-7-16 07:21
反转一比较就可以了啊,

谢谢啊,非常感谢
回复 使用道具 举报
第一个和最后一个比,以此类推,
回复 使用道具 举报
解答的那么详细!
回复 使用道具 举报
江祖贇 来自手机 中级黑马 2014-7-16 23:03:39
9#
格子、 发表于 2014-7-16 07:21
反转一比较就可以了啊,

great
我也是这么做的
回复 使用道具 举报
icris 中级黑马 2014-7-16 23:12:51
10#
  1.         public static boolean isSymmetry(String string) {
  2.                 return string.equals(new StringBuilder(string).reverse().toString());
  3.         }
复制代码

回复 使用道具 举报 1 0
看一下~~
回复 使用道具 举报
翻转可以比较。也可以首位变亮i,j依次+1,-1的进行比较,相同则比较下一位,直到首尾的那两个变量i<=j时比较结束证明是对称,否则不是。。
回复 使用道具 举报
考虑一下算法和简洁性!10楼是最牛掰的。。!
回复 使用道具 举报

高手在民间:handshake
回复 使用道具 举报
厉害啊,学习了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马