将一个字符串分割成相同字符组成的子串(python实现)

it2025-04-11  17

题目: 有这样一个字符串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']
最新回复(0)