小白水平理解面试经典题目LeetCode 125 Valid Palindrome(验证回文串)

125 验证回文串

说到公司面试,那就是得考出高度,考出水平,什么兼顾这两者呢,那就得看这道

原题描述:

给定一个字符串,判断它是否是回文串。回文串是指正读和反读都一样的字符串。

输入: "A man, a plan, a canal: Panama"

输出: true

示例 2:

输入: "race a car"

输出: false

开始coding

上来一看此题描述,Ok,是我们熟悉的字符串类型。

那还不简单,直接暴力解法走起。

java 复制代码
public class Solution {

    public boolean isPalindrome(String s) {
        if (s == null || s.length() == 0) {
            return true;
        }
        for (int i = 0; i < s.length() / 2; i++) {
            if (s.charAt(i) != s.charAt(s.length() - 1 - i)) {
                return false;
            }
        }
        return true;
    }
}

小明:您好,面试官,我轻松解决了这道题。

面试官:好的,下一位!

小明:您等下,这不科学么?

面试官:虽然让你来拧螺丝,但你真是多一点儿算法都不往下研究了啊?

小明:"上海自来水来自海上",好的!那就是来个Two Pointer去搞

java 复制代码
public class Solution {

    public boolean isPalindrome(String s) {
        if (s == null || s.length() == 0) {
            return true;
        }

        int left = 0;
        int right = s.length() - 1;

        while (left <= right) {
            if (s.charAt(left) != s.charAt(right)) {
                return false;
            }

            left++;
            right--;
        }

        return true;
    }
}

面试官满意的说:嗯,这才是我们想要的人才。好了,进入下一场吧!

最后,在遍历过程中,我们还需要注意以下两点:

  • 如果两个指针相遇,则说明该字符串是回文串,直接返回 true。
  • 如果两个指针指向的字符不相等,则说明该字符串不是回文串,直接返回 false。

希望我的讲解能让大家对这道题有更深刻的理解,好了,快去准备下一题吧!

相关推荐
AKA__Zas4 分钟前
芝士算法(前缀和2.0)
java·数据结构·算法·leetcode·哈希算法·学习方法
菜小麒2 小时前
面试问题-01
面试·职场和发展
朱容zr3331332 小时前
为什么推荐使用自增主键?使用UUID作为主键的优缺点是什么?
java·运维·数据库·后端·mysql·面试·性能优化
艾莉丝努力练剑3 小时前
【Linux:动静态库】Linux 动静态库与可执行文件
linux·运维·服务器·学习·面试·文件系统·动静态库
李剑一3 小时前
再见前端,你好AI
面试·求职
HeiSenBerg3 小时前
Android IPC 深度解析:Binder 机制与 AIDL 实战
面试
城管不管3 小时前
重生——第五次面试2026.8.1一面
java·数据库·后端·ai·面试·职场和发展·agent
圣保罗的大教堂4 小时前
leetcode 3016. 输入单词需要的最少按键次数 II 中等
leetcode
代码代码快快显灵4 小时前
MYSQL—DAY1
面试·职场和发展
白白白小纯15 小时前
算法篇—反转链表
c语言·数据结构·算法·leetcode