def unique(s):
used = set()
ret = list()
s = list(s)
for x in s:
if x not in used:
ret.append(x)
used = set()
used.add(x)
return ret
print(unique('aaaaabbbbbcda'))
def modify(s):
#Create a set from the string
c = set(s)
#If you have only one character in the set, convert set to string
if len(c) == 1:
return ''.join(c)
#Else return original string
else:
return s
print(modify('good'))
print(modify('gggggggg'))
import re
def modify(s):
#Create the sub string with a regex which only matches if a single character is repeated
#Marking the start and end of string as well
out = re.sub(r'^([a-z])\1+$', r'\1', s)
return out
print(modify('good'))
print(modify('gggggggg'))
def simplify(s):
l = len(s)
if l>1 and s.count(s[0]) == l:
return s[0]
return s
print(simplify('good'))
print(simplify('abba'))
print(simplify('ggggg'))
print(simplify('g'))
print(simplify(''))
可以使用trim命令:
请看以下示例:
更新: 对于位于字符串中间的字符,请使用此函数,这要归功于this answer
在java中:
在python中:
但我认为所有这些答案都不符合像
aaaaabbbbbcda
这样的情况,这个字符串在字符串的末尾有一个a,它不会出现在结果(abcd)
。对于这种情况,使用我写的函数:输入:
输出:
这里更好的方法是使用
set
如果你想使用regex,在regex中用
^
和$
标记字符串的开始和结束(灵感来自@bobblebubble comment)输出将是
如果您不想在方法中使用
set
,那么应该这样做:输出:
解释:
相关问题 更多 >
编程相关推荐