📌  相关文章
📜  国际空间研究组织 | ISRO CS 2017 |问题 41(1)

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

国际空间研究组织 | ISRO CS 2017 |问题 41

这是一道关于字符串操作的算法题,需要判断一个字符串是否是回文字符串。

题目描述

给定一个字符串,判断该字符串是否是回文字符串。回文字符串就是一个正序或倒序读起来都一样的字符串。只考虑该字符串中的字母和数字字符,忽略字母的大小写。例如,"A man, a plan, a canal: Panama" 是一个回文字符串,因为忽略掉字符串中的空格和其他非字母数字的字符后,得到的字符串仍然是 "amanaplana canalpanama",正序和倒序读起来都是一样的。

输入

输入为一个字符串,长度不超过 1000。

输出

如果该字符串是回文字符串,则输出 "YES",否则输出 "NO"。

样例输入
A man, a plan, a canal: Panama
样例输出
YES
代码实现

下面是 Python 语言的代码实现:

def is_palindrome(s):
    s = ''.join(filter(str.isalnum, s)).lower()
    return s == s[::-1]

s = input().strip()
if is_palindrome(s):
    print('YES')
else:
    print('NO')

这段代码中,我们首先定义了一个函数 is_palindrome,其参数为一个字符串 s,返回值为布尔类型。该函数将字符串 s 中的非字母、非数字的字符去掉,同时将所有字母都转换成小写形式,然后通过切片操作反转一下该字符串,最后和原字符串进行比较。如果相等,说明该字符串是回文字符串。

接下来,我们读入用户输入的一个字符串 s,调用 is_palindrome 函数判断该字符串是否是回文字符串,最后输出判断结果。

总结

本题考察了字符串的相关操作,包括去除字符串中的特殊字符,将字符串转换成小写字母等操作,以及字符串的切片操作。在解题过程中,需要仔细读题,注意回文字符串只考虑字母和数字字符。