6-5 判断回文字符串 (20 分)
时间: 2023-04-28 13:03:49 浏览: 108
题目描述
给定一个字符串,判断其是否为回文字符串。回文字符串是指正着读和倒着读都一样的字符串。
输入格式
输入为一个字符串,长度不超过100。
输出格式
如果输入的字符串是回文字符串,则输出“YES”,否则输出“NO”。
样例输入
abba
样例输出
YES
样例输入
hello
样例输出
NO
解题思路
回文字符串的判断可以使用双指针来实现。定义两个指针,分别指向字符串的首尾字符,然后向中间移动,每次判断两个指针所指的字符是否相等,如果不相等,则不是回文字符串,否则继续移动指针,直到两个指针相遇。
代码实现
相关问题
6-5 判断回文字符串
回文字符串是指正序和倒序读起来都一样的字符串。判断一个字符串是否为回文字符串,可以将字符串反转,然后比较反转后的字符串是否和原字符串相同。
Python代码:
```python
def isPalindrome(s: str) -> bool:
# 将字符串转化为小写并去除非字母数字字符
s = ''.join(filter(str.isalnum, s.lower()))
# 反转字符串
s_reverse = s[::-1]
# 比较反转后的字符串和原字符串是否相同
return s == s_reverse
```
测试代码:
```python
assert isPalindrome("") == True
assert isPalindrome("A man, a plan, a canal: Panama") == True
assert isPalindrome("race a car") == False
```
6-3 判断回文字符串
回文字符串指的是正着读和倒着读都一样的字符串。判断一个字符串是否为回文字符串可以按照以下步骤:
1. 定义两个指针,一个指向字符串的开头,一个指向字符串的结尾。
2. 每次比较两个指针指向的字符是否相同,如果相同则继续比较下一组字符,如果不同则直接返回 false。
3. 继续比较直到两个指针相遇或者交错,如果相遇或者交错则说明该字符串是回文字符串,返回 true。
下面是 Python 代码示例:
```
def is_palindrome(s):
left, right = 0, len(s) - 1
while left < right:
if s[left] != s[right]:
return False
left += 1
right -= 1
return True
```
示例输入:'abccba'
示例输出:True
阅读全文