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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 刘向阳 于 2012-8-7 18:58 编辑

public class HW
{
    public static void main(String[] args)
    {
        if(isHW(""))
        {
                System.out.println("yes");
        }
        else
        {
                System.out.println("no");
        }
    }
    public static boolean isHW(String str)
    {   
        int low=0;
        int high=str.length()-1;
        while(low<high)
        {
            if(str.charAt(low++)!=str.charAt(high--))
            {
                return false;        
            }
        }
        return true;
    }
}

6 个回复

倒序浏览
本帖最后由 李勇 于 2012-8-6 21:39 编辑

你没有在 函数里传递参数进去  if无法比对 String stc 的长度  

    if(isHW(""))  这里传入 关键的参数才能运行

这是初手常犯的错误  多看看书和写题就可以
  1. public class WH{
  2. public static void main(String[] args)
  3. {
  4. if(isHW("111"))
  5. {
  6. System.out.println("yes");
  7. }
  8. else
  9. {
  10. System.out.println("no");
  11. }
  12. }
  13. public static boolean isHW(String str)
  14. {
  15. int low=0;
  16. int high=str.length()-1;
  17. while(low<high)
  18. {
  19. if(str.charAt(low++)!=str.charAt(high--))
  20. {
  21. return false;
  22. }
  23. }
  24. return true;
  25. }
  26. }

  27. 运行结果:

  28. yes
复制代码
回复 使用道具 举报
本帖最后由 叶征东 于 2012-8-7 16:59 编辑

不好意思,错了。静闭自省去。
回复 使用道具 举报
我暂时还没发现1L的错误.....

我发现2L:1L很明显只写了空字符,没写读取等语句,你随便加个想判断的字符不就ok了,例如12321,abcdcba,awgafasef

我发现3L:
1.你改完编译了吗,return null; 给返回值为boolean的方法? 明显编译都过不去
2.先不说编译过不过,你的算法是:当字符串左右两段字符相等,就返回ture,后面的没机会判断了...显然不对
回复 使用道具 举报
楼上解释很清楚了,楼主回文函数没有问题,3L解法错误
回复 使用道具 举报
楼主,你要自信,你的代码没有问题!
回复 使用道具 举报
没问题,是我的话会在函数里面加个判断。
if(str==null||str.equals(""))
       return false;
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马