小白水平理解面试经典题目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。

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

相关推荐
yanlele5 小时前
我用爬虫抓取了 25 年 5 月掘金热门面试文章
前端·javascript·面试
小兵张健6 小时前
武汉拿下 23k offer 经历
java·面试·ai编程
爱莉希雅&&&7 小时前
技术面试题,HR面试题
开发语言·学习·面试
天天扭码7 小时前
《很全面的前端面试题》——HTML篇
前端·面试·html
zhuiQiuMX9 小时前
脉脉maimai面试死亡日记
数据仓库·sql·面试
独行soc9 小时前
2025年渗透测试面试题总结-2025年HW(护网面试) 33(题目+回答)
linux·科技·安全·网络安全·面试·职场和发展·护网
库森学长9 小时前
面试官:发生OOM后,JVM还能运行吗?
jvm·后端·面试
然我9 小时前
面试必问:JS 事件机制从绑定到委托,一篇吃透所有考点
前端·javascript·面试
__NK10 小时前
【字节跳动高频面试题】不超过 N 的最大数拼接
面试·大厂·字节跳动·手撕
爱学习的茄子11 小时前
React Hooks进阶:从0到1打造高性能Todo应用
前端·react.js·面试