跳到正文
信奥逐课

第 102 课

回文判断

🟢 入门 约 5 分钟

一句话理解

回文是正着读和倒着读一样。

为什么要学

字符串题的基本识别,后面区间 DP 也会再遇到。

讲解

两端指针 i、j,不断比较 s[i] 和 s[j],相等就 i++、j—,直到相遇。有一处不同就不是回文。

空串和单字符都是回文。是否忽略大小写、空格,要看题目。

例子

bool pal(string s) {
    int i = 0, j = (int)s.size() - 1;
    while (i < j) {
        if (s[i] != s[j]) return false;
        i++; j--;
    }
    return true;
}

对 “aba”:比较 a 和 a,再剩下中间 b,成功。对 “ab”:a 和 b 不同,失败。

常见错误

练习 做完再看下一课

字符串 "aa" 是回文。

在线练习 C++ 在浏览器里编译,代码不会上传

Ctrl / ⌘ + Enter 运行 · Tab 缩进

输出
 

进度保存在本机浏览器里。

左右方向键也可翻课