#249、输入一个字符串,输出该字符串中对称的子字符串的最大长度。
#比如输入字符串“google”,由于该字符串里最长的对称子字符串是“goog”,因此输出4。
s="googledeepeed"
sub_s_list=[] #子串
for i in range(len(s)):
for j in range(len(s)-i):
sub_s_list.append(s[i:i+j+1])
print("所有子串为:",sub_s_list)
sym_sub_s_dict={} #对称子串
for i in sub_s_list:
if i[:]==i[::-1]:
sym_sub_s_dict[i]=len(i)
print("对称子串有:",sym_sub_s_dict)
for k,v in sym_sub_s_dict.items():
if v==max(sym_sub_s_dict.values()):
print("最长对称子串是%s,长度是%s" %(k,v))
#249、在TeX中,左双引号是``,右双引号是”。输入一篇包含双引号的文章,你的任务是把它转换成TeX格式。
def convert_str(s):
n = 0
for v in s:
if v =='“':
s = s.replace('“','``')
return s
s = '“To be or not to be,” quoth the Bard, “thatis the question”.'
print(convert_str(s))
#250、如果一个字符串可以由某个长度为k的字符串重复多次得到,我们说该串以k为周期。
#例如,abcabcabcabc以3为周期(注意,它也以6和12为周期)。
#输入一个长度不超过80的串,输出它的最小周期。 样例输入:HoHoHo 样例输出:2 (竞赛题)
s = input(">> ")
flag = 0
for i in range(len(s)):
for j in range(1,81):
if s[:i]*j == s and len(s[:i]) >= 1:
flag = 1
print(s[:i])
print(len(s[:i]))
if flag == 1:
break
#251、”abcdefghi”,如果n = 2,移位后应该是”hiabcdefg”
def move_str(s,n):
if not isinstance(s,str) or not isinstance(n,int):
return None
if n==len(s):
return s
new_s=s[len(s)-n:]+s[0:(len(s)-n)]
return new_s
print(move_str("abcdefghi",2))
print(move_str("abcdefghi",0))
print(move_str("abcdefghi",8))
print(move_str("abcdefghi",9))
#252、从键盘输入多个任意长度的单词,当输入“#”符时结束输入(字符串内容不包括“#”),然后程序反向输出所有输入的单词。
word_list=[]
while True:
word=input("请输入任意长度单词,结束输入请输入#:")
if word=="#":
print(word_list[::-1])
break
else:
word_list.append(word)
#253、如何确定一个纯ascii字符串中是否所有字符全部互不相同
s = "sdfkjljkjlkjkl2323"
s2 ="12abc"
#方法一
def is_all_diff(s):
d={}
for i in s:
d[i]=1
if len(d)==len(s):
return True
else:
return False
print(is_all_diff(s))
print(is_all_diff(s2))
#方法二
def is_all_diff(s):
for i in s:
if s.count(i)>1:
return False
return True
print(is_all_diff(s))
print(is_all_diff(s2))
#254、s = “ajldjlajfdljfddd”,去重并从小到大排序输出"adfjl"
s = "ajldjlajfdljfddd"
result=list(set(list(s)))
print("".join(sorted(result)))