📜  门|门 IT 2006 |第 69 题(1)

📅  最后修改于: 2023-12-03 15:12:46.498000             🧑  作者: Mango

门|门 IT 2006 |第 69 题

题目描述

实现一个程序,用来判断一个字符串是否为回文字符串。

回文字符串:正反读都一样的字符串,比如"level"、"deed"、"noon"。

输入

一个字符串。

输出

如果输入的字符串是回文字符串,输出"YES",否则输出"NO",不区分大小写。

样例输入
level
样例输出
YES
注意事项

输入的字符串长度不超过 $10^6$。请学习字符串的基本使用方法,在满足时间和空间限制的前提下完成本程序。

解题思路

判断是否为回文字符串,最直接的方法就是将字符串倒置过来与原串比较,如果相同即为回文字符串。因为本题限制了时间和空间,所以在代码实现上需要注意。

代码实现
def is_palindrome(s: str) -> str:
    left, right = 0, len(s) - 1
    while left < right:
        if s[left] != s[right]:
            return "NO"
        left += 1
        right -= 1
    return "YES"


if __name__ == '__main__':
    s = input().strip().lower()
    print(is_palindrome(s))
总结

本题虽然不难,但是注意事项中提到该如何使用字符串,也是非常值得程序员们深入学习的内容。通过本题的实现,不仅可以提升对字符串的基本掌握程度,同时还能锻炼代码解决问题的能力,帮助程序员们更好地完成工作。