📅  最后修改于: 2023-12-03 15:25:46.452000             🧑  作者: Mango
本程序旨在找到给定字符串中,两端较小的字符相等的所有位置。
请在程序中使用input()
函数输入字符串,可以包含任何字符,包括但不限于字母、数字、标点符号和空格。
程序将返回一个列表,其中包含所有两端较小字符相等的子串的起始位置。
定义一个空列表,命名为result
,用于储存结果。
遍历从第一个字符开始到第n-1个字符结束的子串,其中n为字符串的长度。
对于每个子串,找到首位两个字符中较小的那一个,判断这个字符是否同时存在于子串的首尾位置。
若条件成立,则将该子串的起始位置加入result
列表中。
最终返回result
列表。
def find_positions():
inputstr = input("请输入字符串:")
strlength = len(inputstr)
result = []
for i in range(strlength-1):
for j in range(i+1, strlength):
firstchar = min(inputstr[i], inputstr[j])
if firstchar in (inputstr[i], inputstr[j]):
sub = inputstr[i:j+1]
if sub[0] == sub[-1]:
result.append(i)
break
return result
测试用例 1:
输入
请输入字符串:abcdbdcdef
输出
[0, 4, 7]
测试用例 2:
输入
请输入字符串:a bc de f ghi ij kl mlk ihbg gcde af
输出
[0, 5, 11, 18, 19, 21, 23]
测试用例 3:
输入
请输入字符串:1234567890
输出
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]