题目
从标准输入读入一个字符串,判断该字符串是否为回文字符串(即正向读和反向读完全相同的字符串)。
输入格式:一行输入一个不含空白字符的字符串。
输出格式:若为回文字符串输出 yes,否则输出 no,末尾换行。
数据范围与约定:字符串长度不超过 1000。
思路与算法
1. 双指针相向收缩
设置左指针 i = 0 和右指针 j = len(s) - 1,比对 s[i] == s[j]。
2. 切片反转极简法
也可以通过 s == s[::-1] 判定,简洁直观。
完整程序
s = input().strip()
# 字符串回文判断:双指针比对
i, j = 0, len(s) - 1
is_palindrome = True
while i < j:
if s[i] != s[j]:
is_palindrome = False
break
i += 1
j -= 1
print('yes' if is_palindrome else 'no')运行示例
输入:
level输出:
yes