题目:
有这样一个字符串s,将其分割为相同字符组成的子串,例如:
s1 = “aabbccdd” ,结果:[“aa”,“bb”,“cc”,“dd”]
输入:s
输出:分割后的结果列表
方法一:判断相邻的两个字符是否相等,若不相等就添加标志符隔开,然后转换为列表
def func1(s):
'''
用来将一个字符串转换成用相同连续字符组成的子串列表
:param s:
:return:
'''
s1 = list(s)
k = 0
for j in range(len(s) - 1):
if s[j] != s[j + 1]:
k += 1
s1.insert(j + k, '#')
s2 = ''.join(s1).split('#')
return s2
if __name__ == "__main__":
s = input()
result = func1(s)
print(result)
测试样例:
>>abcd
['a', 'b', 'c', 'd']
>>aabbccddaabbcd
['aa', 'bb', 'cc', 'dd', 'aa', 'bb', 'c', 'd']
方法二:比较相邻字符是否相等,不相等的话就截取相同字符的子串,并添加到列表中
def func2(s):
'''
用来将一个字符串转换成用相同连续字符组成的子串列表
:param s:
:return:
'''
reslist = []
key_word = s[0]
zi_chuan = ''
for i in s:
if i == key_word:
zi_chuan += i
else:
key_word = i
reslist.append(zi_chuan)
zi_chuan = i
reslist.append(zi_chuan)
return reslist
if __name__ == "__main__":
s = input()
result = func2(s)
print(result)
测试样例:
>>abcd
['a', 'b', 'c', 'd']
>>aabbccddaabbcd
['aa', 'bb', 'cc', 'dd', 'aa', 'bb', 'c', 'd']
版权声明:本文为time_money原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。