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

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

相关推荐
uzong8 小时前
程序员从大厂回重庆工作一年
java·后端·面试
爬上树顶17 小时前
软件项目中的人与事
程序人生·职场和发展·蓝桥杯
风止何安啊17 小时前
Event Loop 教你高效 “划水”:JS 单线程的“摸鱼”指南
前端·javascript·面试
我是华为OD~HR~栗栗呀17 小时前
华为OD-C面经-23届学院哦
java·c++·python·华为od·华为·面试
资深web全栈开发17 小时前
LeetCode 3432. 统计元素和差值为偶数的分区方案数
算法·leetcode
im_AMBER19 小时前
Leetcode 67 长度为 K 子数组中的最大和 | 可获得的最大点数
数据结构·笔记·学习·算法·leetcode
测试199820 小时前
简单的Web UI自动化测试框架Java实现
自动化测试·软件测试·selenium·测试工具·ui·职场和发展·测试用例
程序员小远20 小时前
Selenium自动化测试之弹窗处理
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
天才测试猿21 小时前
Jmeter压测实战:Jmeter二次开发之自定义函数
自动化测试·软件测试·python·测试工具·jmeter·职场和发展·压力测试
尋有緣21 小时前
力扣1327-列出指定时间段内所有的下单产品
leetcode·oracle·数据库开发