<分区>
考虑一个字符串:- "HeLloWOrLD"
现在我必须分开像“H”、“e”、“LlL”、“oO”、“W”、“r”、“D”这样的字符(它们应该以小而小的方式分开大写字符在同一组中)。
那我该怎么做呢?
标签 python python-3.x
<分区>
考虑一个字符串:- "HeLloWOrLD"
现在我必须分开像“H”、“e”、“LlL”、“oO”、“W”、“r”、“D”这样的字符(它们应该以小而小的方式分开大写字符在同一组中)。
那我该怎么做呢?
最佳答案
如果您希望所有字母,无论是小写字母还是大写字母都在同一组中,那么这样做就可以了。 O(n) 的时间复杂度:
d = {}
for char in "HeLloWOrLD":
lower_char = char.lower()
d[lower_char] = d[lower_char] + char if lower_char in d else char
>>> d.values()
dict_values(['H', 'e', 'LlL', 'oO', 'W', 'r', 'D'])
如果相反,您希望所有小写字符都在同一组中,所有大写字母都在同一组中,那么您的解决方案是:
时间复杂度O(n):
str = "HeLloWOrLD"
str_lower = []
str_upper = []
for i in range(len(str)):
if str[i].islower():
if i != 0 and str[i-1].islower():
str_lower[-1] = str_lower[-1] + str[i]
else:
str_lower.append(str[i])
else:
if i != 0 and str[i-1].isupper():
str_upper[-1] = str_upper[-1] + str[i]
else:
str_upper.append(str[i])
>>> print(str_upper)
['H', 'L', 'WO', 'LD']
>>> print(str_lower)
['e', 'lo', 'r']
关于python - 如何将字符串中的小写字符和大写字符分开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57439883/