python-3.x - 关于回文序列的 Python 代码
问题描述
有一个字母序列是回文。现在,恰好一对随机挑选的字母相互交换。如果可能,编写一个 python 程序来确定字母的原始回文序列。def get_original_palindrome(edited_sequence):
解决方案
def get_misplaced_indexes(w):
misplaced_indexes = []
for i in range(len(w)//2):
if w[i] != w[len(w)-1-i]:
misplaced_indexes.append(i)
if len(misplaced_indexes) == 1:
misplaced_indexes.append(len(w)//2)
return misplaced_indexes
def get_one_of_original_palindrome(misplaced_indexes, w):
ans = ""
index1, index2 = misplaced_indexes
for i in range(len(w)):
if i == index1:
ans += w[index2]
elif i == index2:
ans += w[index1]
else:
ans += w[i]
return ans
def get_original_palindrome(w):
if w == w[::-1]:
return(w)
else:
misplaced_indexes = get_misplaced_indexes(w)
return get_one_of_original_palindrome(misplaced_indexes, w)
print(get_original_palindrome("radar"))
print(get_original_palindrome("ardar"))
print(get_original_palindrome("rdaar"))
print(get_original_palindrome("helelh"))
推荐阅读
- angular - Angular:更改使用 Typescript 选择的 KendoDropdown 数据
- react-native - react native导出默认多组件
- google-apps-script - 要触发的 Google Apps 脚本最新表单响应 -
- excel - 如果问题是动态的 - 逻辑值变成动态的
- c# - Windows 窗体 C# 标签 backColor 更改问题
- python - 如何获取每行不同列的最后一个有效索引的值
- c# - 在c#树视图中,复选框和Imagelist图标重叠,如何解决这个问题?
- regex - 如何正则表达式到目前为止在命令输出中写入的字符串?
- c++ - 为什么我的数组输出一个不在其中的元素?
- powerbi - 分组天数以查看在 Power BI 中使用 DAX 售出的商品数量