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

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

相关推荐
是小王同学啊~1 小时前
Kafka 面试通关笔记:高频八股 + 生产实战 + 追问链路(上)
笔记·面试·kafka
z200509302 小时前
今日算法(回溯子集)
数据结构·算法·leetcode
ychqsq2 小时前
39.新年
经验分享·职场和发展
Hesionberger2 小时前
巧用异或找出唯一数字(多解)
java·数据结构·python·算法·leetcode
我命由我123452 小时前
UGC、PGC、PUGC 极简理解
经验分享·笔记·学习·职场和发展·求职招聘·职场发展·学习方法
Komorebi_99992 小时前
Day6:微调 vs RAG 场景区分(面试高频)
面试·职场和发展
英俊潇洒美少年2 小时前
Vue2 $set 深度解析 + 批量更新全套优化方案(原理+实战+踩坑+面试)
面试·职场和发展·wps
Xzh04232 小时前
Redis黑马点评 实战复盘与面试高频考点详解
java·数据库·redis·面试
菜菜的顾清寒2 小时前
力扣HOT100(47) 二叉树的层序遍历
算法·leetcode·深度优先
SiYuanFeng3 小时前
百度网盘【搜索/查找】如何限定在当前文件夹下搜索
面试