题解 | #判断回文#

判断回文

http://www.nowcoder.com/practice/e297fdd8e9f543059b0b5f05f3a7f3b2

描述

给定一个字符串,请编写一个函数判断该字符串是否回文。如果回文请返回true,否则返回false。

示例1

输入:
"absba"

返回值:
true

示例2

输入:
"ranko"

返回值:
false

示例3

输入:
"yamatomaya"

返回值:
false

示例4

输入:
"a"

返回值:
true

思路

这道题时判断这个字符串是否时回文的,回文其实就是对称的意思。
咱们可以使用双指针的思维来解决这道题。

  1. 定义两个指针(begin、end)。 begin 指向字符串头部, end 指向字符串尾部。
  2. 比较两个指针对应的字符是否相等,不想等直接发挥 false;相等则 begin ++; end --。然后在判断,知道 end > begin 为止。

AC 代码

public boolean judge (String str) {
        // write code here
        if (str == null || str.length() < 1) {
            return false;
        }
        // 定义两个指针
        int begin = 0;
        int end = str.length() - 1;
        // 当 begin 没有超过 end 时
        while (end > begin) {
            // 如果两个指针对应的字符不相等,直接返回 false
            if (str.charAt(begin) != str.charAt(end)) {
                return false;
            }
            // 两个指针前进
            begin ++;
            end --;
        }
        // 这时候判断字符串时回文的
        return true;
    }

时间复杂度:O(N),N 字符串长度
空间复杂度:O(1)

最后

大家可以去 【牛客网-题库-在线编程】去练习一下。
可以去微信搜索:【蘑菇睡不着】交个朋友~
也可以扫描下方二维码。

图片说明

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-08 12:05
俺不中了,BOSS遇到了一个hr,我觉得我咨询的问题都很正常吧,然后直接就被拒绝了???
恶龙战士:你问的太多了,要不就整理成一段话直接问他,一个一个问不太好
点赞 评论 收藏
分享
Gaynes:查看图片
点赞 评论 收藏
分享
06-14 19:09
门头沟学院 Java
darius_:给制造业搞的,什么物料管理生产管理,设备管理点检,最最关键的就是一堆报表看板。个人觉得没啥技术含量都是些基本的crud,但是业务很繁琐那种
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务