黑马程序员技术交流社区

标题: 求助,这道题应该怎么做? [打印本页]

作者: 清净明诲    时间: 2014-7-15 22:17
标题: 求助,这道题应该怎么做?
判断一个字符串是否是对称字符串,例如"abc"不是对称字符串,"aba"、"abba"、"aaa"、"mnanm"是对称字符串  ,,,对于这道题毫无思路,求解,谁能帮忙解答下,谢谢啦
作者: xiaogh    时间: 2014-7-15 22:25
从两端开始比较首位两个字母的是否一样,不一样就表示不是对称
作者: chensuyu    时间: 2014-7-15 22:31
定义两个指针,一个从前向后循环,一个从后向前
作者: blue_sky    时间: 2014-7-15 22:39
对字符串通过判断长度的单双,根据结果进行切分,对其中一个翻转,在比较。这也是一种思路。不过,还是将2、3楼意见结合一下,注意判断长度应该是比较好的思路。
作者: 格子、    时间: 2014-7-16 07:21
反转一比较就可以了啊,
  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. }
复制代码

作者: 清净明诲    时间: 2014-7-16 22:10
格子、 发表于 2014-7-16 07:21
反转一比较就可以了啊,

谢谢啊,非常感谢
作者: 郝培慧    时间: 2014-7-16 22:19
第一个和最后一个比,以此类推,
作者: 毕业生    时间: 2014-7-16 22:56
解答的那么详细!
作者: 江祖贇    时间: 2014-7-16 23:03
格子、 发表于 2014-7-16 07:21
反转一比较就可以了啊,

great
我也是这么做的
作者: icris    时间: 2014-7-16 23:12
  1.         public static boolean isSymmetry(String string) {
  2.                 return string.equals(new StringBuilder(string).reverse().toString());
  3.         }
复制代码


作者: TreeSet    时间: 2014-7-16 23:44
看一下~~
作者: IT初学者    时间: 2014-7-17 11:46
翻转可以比较。也可以首位变亮i,j依次+1,-1的进行比较,相同则比较下一位,直到首尾的那两个变量i<=j时比较结束证明是对称,否则不是。。
作者: a191170796    时间: 2014-7-17 15:27
考虑一下算法和简洁性!10楼是最牛掰的。。!
作者: 扛把子    时间: 2014-7-17 15:57
icris 发表于 2014-7-16 23:12

高手在民间:handshake
作者: Caincxy    时间: 2014-7-17 16:03
厉害啊,学习了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2