重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
题目:判断一个字符串是否包含重复字符。例如good则包含,abc则不包含。
创新互联是创新、创意、研发型一体的综合型网站建设公司,自成立以来公司不断探索创新,始终坚持为客户提供满意周到的服务,在本地打下了良好的口碑,在过去的十年时间我们累计服务了上千家以及全国政企客户,如成都垃圾桶等企业单位,完善的项目管理流程,严格把控项目进度与质量监控加上过硬的技术实力获得客户的一致赞誉。
分析:哈希法。
code:
(1)
strs = 'Good'
hashTable = dict()
listStrs = list(strs)
i = 0
while i len(strs):
if listStrs[i] in hashTable:
print("有重复字符")
break
else:
hashTable[listStrs[i]] = None
i += 1
if i = len(strs):
print("没用重复字符")
break
程序运行结果:
有重复字符
(2)
def longest_repetition(chars):
if len(chars) is None or len(chars) = 1:
return (chars, len(chars))
result = [1] * len(chars)
for left in range(len(chars) - 1):
for right in range(left + 1, len(chars)):
if chars[left] == chars[right]:
print("a")
result[left] += 1
else:
print("aa")
break
#return result
return (chars[result.index(max(result))], max(result))
if __name__ == "__main__":
txt = 'banaaana'
print(longest_repetition(txt))
Python 字符串中strip()方法 Python中strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。 注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。 它的函数原型:string.strip(s[, chars]),它返回的是字符串的副本,并删除前导和后缀字符。(意思就是你想去掉字符串里面的哪些字符,那么你就把这些字符当参数传入。此函数只会删除头和尾的字符,中间的不会删除。) 如果strip()的参数为空,那么会默认删除字符串头和尾的空白字符(包括\n,\r,\t这些)。
难度:★☆☆☆☆
类型:数组
给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。
示例 1:
输入: "abab"
输出: True
解释: 可由子字符串 "ab" 重复两次构成。
示例 2:
输入: "aba"
输出: False
示例 3:
输入: "abcabcabcabc"
输出: True
解释: 可由子字符串 "abc" 重复四次构成。 (或者子字符串 "abcabc" 重复两次构成。)
这里我们观察到一个现象,对于一个字符串s,我们将两个该字符串连接成一个更长的字符串(s_double),该字符串中至少包含两个s子串,如果s可以由多个重复单元构成,那么合并后的字符串中一定包含超过两个s子串(可重叠),例如,两个"abab"组成的"abababab"中包含3个"abab",而两个"aba"组成的"abaaba"则只包含两个"aba",根据这个原理,我们只需要统计s+s中s(可重叠)出现的次数,并与2比较即可。
这里为了简化计算,我们把s+s的首尾两端字符去掉,这样就只需要查看s是否在剩余的字符串中即可。编码时通过索引范围[1:len(s)*2-1]起到去掉首尾两端字符的效果。
如有疑问或建议,欢迎评论区留言~
代码如下:
【备注】:
1. 用str.split(',')只能分隔逗号一种;如果涉及到多重分隔的话就需要使用re.split(',|:')。
2. 原字符串以逗号分隔的,后面有一个或多个字符串,所以re.split(', | ')。
3. 执行re.split(r', | ', S)操作之后,列表中会产生大量的'',就需要将filter过滤掉。
4. 使用L.count(x) == 1 或者 L.count(x) 1来保留重复项或,非重复项。
5. set(L)则是保留列表中的唯一项,再用list()将其转换为列表。
6. 使用', '.join(L),将列表拼接成我们想要的字符串。