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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 清净明诲 中级黑马   /  2014-7-11 23:00  /  1709 人查看  /  12 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

判断一个字符串是否是对称字符串,例如"abc"不是对称字符串,"aba"、"abba"、"aaa"、"mnanm"是对称字符串.
这个题的思路是什么??应该怎么考虑呢,哪位大神帮帮忙,看看这个题目应该如何做呢

12 个回复

倒序浏览
首尾逐个比较就行了啊。
  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.         }
复制代码



回复 使用道具 举报
把第一个和最后一个比较,第二个和倒数第二个比较,依次类推
回复 使用道具 举报
设字符串长度为n,比较第0和第n-1个字符是否相等,接着比较第1和第n-2个字符是否相等,以此类推比较,直到字符串的中点,只要有一个不等,就是非对称
回复 使用道具 举报
这是基础测试的题目吧。
回复 使用道具 举报
循环比较
回复 使用道具 举报
ahuhxl 中级黑马 2014-7-12 10:49:52
7#
思路:将字符串反转,若反转后和原串一样就是对称的
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+"不是对称字符串");
        }
回复 使用道具 举报 1 0
ahuhxl 发表于 2014-7-12 10:49
思路:将字符串反转,若反转后和原串一样就是对称的
public static void judgment(String line)
        {

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

这个简单易用。 给力
回复 使用道具 举报
ahuhxl 发表于 2014-7-12 10:49
思路:将字符串反转,若反转后和原串一样就是对称的
public static void judgment(String line)
        {

思路不错
回复 使用道具 举报
谢谢大家的热心提问啊,谢谢
回复 使用道具 举报
ahuhxl 发表于 2014-7-12 10:49
思路:将字符串反转,若反转后和原串一样就是对称的
public static void judgment(String line)
        {

en   这个不错
回复 使用道具 举报
本帖最后由 xiaogh 于 2014-7-12 23:28 编辑

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

个人认为这3种方法: 3 > 2 > 1;
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马