一、字符串有关题目
主要涉及字符串的基础操作,同时还要明白几个概念:子串、回文、子序列,这些问题出现的概率比较大
1、字符串是否包含某个子串
方法一:使用in
s = ‘nihao,shijie’
t = ‘nihao’
result = t in s
print(result) //返回True表示包含
方法二:使用string模块的 index() 方法
import string
def find(s,t):
try:
string.index(s,t)
return True
except(ValueError):
return False
s = ‘nihao,shijie’
t = ‘nihao’
result = find(s,t)
print(result)
2、字符串中最大长度子串
如字符串abcd13agbf,当重复出现某个字符时,算一个子串,比如abcd13a或bcd13agb都是子串
les_list= []
length = len(str)
for i in range(length):
tmp = str[i] //当前查找的字符串tmp
for j in range(i+1,length):
if str[j] not in tmp:
tmp += str1[j] //如果tmp后面字符串与前面字符串不重复则字符串相加
else:
break
res_list.append(tmp)
res_list.sort(lambda x,y:operator.eq(len(x),len(y))//按照长度升序排序 #python2 cpm函数用于比较2个对象,python3被operator模块代替
return res_list[-1]
3、是否是回文
方法一:反转reversed()函数,判断是否相等
例如 “abccba” 是一个回文
s="abccba"
a = reversed(list(s))
if list(a) == list(s):
print('是回文')
else:
print('不是回文')
方法二:利用递归
def ishui(s):
if len(s)<2:
return True
if s[