判断是否为回文字符串--python实现
·
双指针BM88:
题目如下:

Python代码如下:
1)解法1(常规解法):
#
# @param str string字符串 待判断的字符串
# @return bool布尔型
#
class Solution1:
def judge(self , str: str) -> bool:
help_str = ""
for i in range(len(str) - 1, -1, -1):
help_str += str[i]
return str == help_str
s = Solution()
a = s.judge("abaa")
b = s.judge("abcdefgfedcba")
print(a, b)
解题思路:
1、用for循环,将字符串str翻转,得出新的字符串help_str;
2、如果新的字符串help_str与原字符串str相同,则str是回文字符串,返回True;否则不是回文字符串,返回False。
2)解法2(双指针解法):
#
# @param str string字符串 待判断的字符串
# @return bool布尔型
#
class Solution:
def judge(self , str: str) -> bool:
left, right = 0, len(str) - 1
while left <= right:
if str[left] != str[right]:
return False
left = left + 1
right = right - 1
return True
s = Solution()
a = s.judge("abaa")
b = s.judge("abcdefgfedcba")
print(a, b)
解题思路:
1、定义左、右两个指针left、right,分别初始化为0、字符串长度-1,从两侧向中间遍历比较;
2、left指针向右移,right指针向左移,当left<=right时,执行循环,left>right时循环结束:判断字符串str的left位置和right位置的字符,如果不同,则不是回文字符串,返回False;如果相同,left向右移一位,right向左移一位,继续比较;
3、循环结束仍未出现left位置和right位置的字符不一致的情况,说明是回文字符串,返回True。
如下图所示:


更多推荐


所有评论(0)