检查字符串中的字符是否在 Python 中的 O(1) 额外空间中形成回文
假设我们有一个字符串s。该字符串可以包含小写字符、其他特殊字符和数字。我们必须检查是否只有字符串中出现的字母是回文的。这里的一个限制是我们不允许使用额外的空间来解决这个问题。
因此,如果输入类似于s="ra$5ce58car",则输出将为True,因为这些字母正在形成回文的“racecar”。
让我们看看以下实现以获得更好的理解-
示例代码
def first_letter_index(str, left, right):
index = -1
for i in range(left, right + 1):
if str[i] >= 'a' and str[i] <= 'z' :
index = i
break
return index
def last_letter_index(str, left, right):
index = -1
for i in range(left, right - 1, -1) :
if str[i] >= 'a' and str[i] <= 'z':
index = i
break
return index
def solve(str):
left = 0
right = len(str) - 1
flag = True
for i in range(len(str)) :
left = first_letter_index(str, left, right)
right = last_letter_index(str, right, left)
if right < 0 or left < 0:
break
if str[left] == str[right]:
left += 1
right -= 1
continue
flag = False
break
return flag
s = "ra$5ce58car"
print(solve(s))输入
"ra$5ce58car"
输出结果
True
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短