黑马程序员技术交流社区

标题: 关于此题,大家看看代码应该如何写呢 [打印本页]

作者: 清净明诲    时间: 2014-7-11 23:00
标题: 关于此题,大家看看代码应该如何写呢
判断一个字符串是否是对称字符串,例如"abc"不是对称字符串,"aba"、"abba"、"aaa"、"mnanm"是对称字符串.
这个题的思路是什么??应该怎么考虑呢,哪位大神帮帮忙,看看这个题目应该如何做呢

作者: 黎志勇    时间: 2014-7-11 23:32
首尾逐个比较就行了啊。
  1.         public static boolean isSymmetryString(String string) {
  2.                 char[] chars = string.toCharArray();
  3.                 for (int i = 0; i < chars.length / 2; i++) {
  4.                         if (chars[i] != chars[chars.length - i - 1]) {
  5.                                 return false;
  6.                         }
  7.                 }
  8.                 return true;
  9.         }
复制代码




作者: 裤裆里的温柔、    时间: 2014-7-12 00:05
把第一个和最后一个比较,第二个和倒数第二个比较,依次类推
作者: fantacyleo    时间: 2014-7-12 00:10
设字符串长度为n,比较第0和第n-1个字符是否相等,接着比较第1和第n-2个字符是否相等,以此类推比较,直到字符串的中点,只要有一个不等,就是非对称
作者: hmid    时间: 2014-7-12 01:08
这是基础测试的题目吧。
作者: Beka    时间: 2014-7-12 02:45
循环比较
作者: ahuhxl    时间: 2014-7-12 10:49
思路:将字符串反转,若反转后和原串一样就是对称的
public static void judgment(String line)
        {
                String line2 = new StringBuffer(line).reverse().toString();
                if(line2.equals(line))
                        System.out.println(line+"是对称的字符串");
                else
                        System.out.println(line+"不是对称字符串");
        }
作者: hejinzhong    时间: 2014-7-12 12:50
ahuhxl 发表于 2014-7-12 10:49
思路:将字符串反转,若反转后和原串一样就是对称的
public static void judgment(String line)
        {

这个好,但有时候不知道已经有了系统提供的那些功能。
作者: jwx555    时间: 2014-7-12 13:07
ahuhxl 发表于 2014-7-12 10:49
思路:将字符串反转,若反转后和原串一样就是对称的
public static void judgment(String line)
        {

这个简单易用。 给力
作者: Coup_D`etat    时间: 2014-7-12 13:27
ahuhxl 发表于 2014-7-12 10:49
思路:将字符串反转,若反转后和原串一样就是对称的
public static void judgment(String line)
        {

思路不错
作者: 清净明诲    时间: 2014-7-12 22:22
谢谢大家的热心提问啊,谢谢
作者: caiyaoren    时间: 2014-7-12 22:52
ahuhxl 发表于 2014-7-12 10:49
思路:将字符串反转,若反转后和原串一样就是对称的
public static void judgment(String line)
        {

en   这个不错
作者: xiaogh    时间: 2014-7-12 23:20
本帖最后由 xiaogh 于 2014-7-12 23:28 编辑

不给你具体答案了,人要养成自己敲代码的习惯,但有3个思路,我当时比较就想到了一个最笨的方法。1、根据字符串的长度按情况等分字符串,使用循环反转其中一个子字符串,如果反转后equals另一个字符串,就表示是对称字符串。
2、根据字符串的长度按情况等分字符串,将其中一个字符串转换为StringBuffer,使用StringBuffer的反转方法得到目标字符串,通过比较是否equals判读是否是对称字符串。
3、同时比较字符串首尾的ascii码值,有不想等的就说明不是对称字符串。

个人认为这3种方法: 3 > 2 > 1;





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