学python的第六天---字符串
创始人
2024-05-31 04:03:23
0

  • 一、只出现一次的字符
      • 其他:round(XXX,1)
      • 忽略大小写比较字符串大小
      • 字符串几个可以使用的函数
  • 二、去掉多余的空格
  • 写法一:
  • 写法二:
  • 三、信息加密
    • 写法一:
    • 写法二:
    • 写法三:自己的写法
  • 四、单词替换
  • 五、倒排单词
    • 写法一:
    • 写法二:
      • *
    • 写法三:
      • [::-1]
  • 六、字符串移位包含问题
    • 写法一:我自己的写法哈哈哈
    • 写法二:
    • 写法三:
  • 七、字符串乘方
    • 写法一:
    • 写法二:
    • 写法三:
      • from collections import Counter
  • 八、字符串最大跨度
    • 写法一:
    • 写法二:
      • rfind
  • 九、最长公共字符串后缀

已经完成了一部分字符串的题目,在前面的一篇文章里面,本来以为这一部分应该算是基础部分,但其实感觉字符串中会有很多用法我都不太会,所以专门在做一节。

一、只出现一次的字符

在这里插入图片描述
res.get(i, False) 是在字典 res 中查找键为 i 的值,如果找到了返回对应的值,否则返回 False

s=input()
res={}
for i in s:if res.get(i,False):res[i]=res[i]+1else:res[i]=1
for i in res:if res[i]==1:print(i)exit()
print("no")

其他:round(XXX,1)

这行代码的作用是将XXX四舍五入保留一位小数。

忽略大小写比较字符串大小

在这里插入图片描述

字符串几个可以使用的函数

str = "www.runoob.com"
print(str.upper())          # 把所有字符中的小写字母转换成大写字母
print(str.lower())          # 把所有字符中的大写字母转换成小写字母
print(str.capitalize())     # 把第一个字母转化为大写字母,其余小写
print(str.title())          # 把每个单词的第一个字母转化为大写,其余小写 
s1,s2=input().lower(),input().lower()
if s1==s2:print("=")
elif s1>s2:print(">")
elif s1

二、去掉多余的空格

在这里插入图片描述

写法一:

print(" ".join(input().split()))

写法二:

for s in input().split():print(s, end = ' ')

三、信息加密

在这里插入图片描述

写法一:

chr()是一个Python内置函数,它将一个整数作为参数,并返回对应于该整数的ASCII / Unicode字符。

for c in input():if c >= 'a' and c <= 'z' or c >= 'A' and c <= 'Z':if ord(c) + 1 == ord('z') + 1 or ord(c) + 1 == ord('Z') + 1:c = chr(ord(c) - 25)else:c = chr(ord(c) + 1)print(c, end = '')
for c in input():if c.isalpha():#判断是不是字母if ord(c) + 1 == ord('z') + 1 or ord(c) + 1 == ord('Z') + 1:c = chr(ord(c) - 25)else:c = chr(ord(c) + 1)print(c, end = '')

写法二:

data = {}
t = [chr(97+i) for i in range(26)]
for i in range(len(t)-1):data[t[i]] = t[i+1]data['z'] = 'a'
# print(data)
res = ''
for i in input():if data.get(i,False):res += data[i]elif data.get(i.lower(),False):res += data[i.lower()].upper()else:res+= iprint(res)

写法三:自己的写法

我是不是掌握了?哈哈哈

s=input()
for i in s:if i=="z":i="a"elif i=='Z':i="A"elif i.isalpha():i=chr(ord(i)+1)print(i,end='')

四、单词替换

在这里插入图片描述

s,a,b=input(),input(),input()
for t in s.split():if t==a:print(b,end=" ")else: print(t,end=" ")

五、倒排单词

在这里插入图片描述

写法一:

l=list(input().split())
l.reverse()
for i in l:print(i,end=' ')

写法二:

*

’*‘ 号是 Python 的一个语法,用于解包列表或元组,将其拆分为一个个单独的变量。这里将列表中的所有元素解包成独立的字符串,传入 print() 函数中。

print(*reversed(input().split()))

写法三:

[::-1]

[::-1] 是列表的一个特殊的语法,用于将列表倒序输出,即从最后一个元素开始到第一个元素,步长为 -1。

print(*input().split()[::-1])

六、字符串移位包含问题

在这里插入图片描述

写法一:我自己的写法哈哈哈

a,b=input().split()
if len(a)

写法二:

s, t = input().split()
if len(s) < len(t):s, t = t, s
for i in range(len(s)):str = s[i:] + s[:i]if str.find(t) != -1:print('true')break
else:print('false')

写法三:

s, t = input().split()
if len(s) < len(t):s, t = t, s
s *= 2
if s.find(t) == -1:print('false')
else:print('true')

七、字符串乘方

在这里插入图片描述
这个就是寻找最小的重复子串,且这个子串可以重复多次构成母串

写法一:

def check(l, s):p = s[:l]for i in range(l, len(s), l):cur = s[i: i + l]if p != cur:return Falsereturn True
while 1:s = input()if s == '.':breakl = len(s)maxl = 1for curl in range(1, l):if check(curl, s):maxl = max(maxl, int(l / curl))print(maxl)

写法二:

字符串最小的,肯定是重复次数最多的,所以我们只要一找到符合要求的,就可以跳出循环

while True:s = input()if s == '.':breakn = len(s)for i in range(1, n + 1):if n % i == 0:cs = s[:i]res = int(n / i)cs *= res#将求出的字符串和原来的字符串对比,如果是那就说明这个方案可行if cs == s:print(res)break

写法三:

from collections import Counter

记录每个数字出现了多少次

from collections import Counter
while True:s = input()if s == '.':breakc = Counter(s)print(min(c.values()))

八、字符串最大跨度

在这里插入图片描述

写法一:

s, a, b = map(str, input().split(','))
if s.find(a) != -1 and s.find(b) != -1:ai = s.find(a) + len(a)s = s[::-1]b = b[::-1]bi = len(s) - s.find(b) - len(b)if ai <= bi:print(bi - ai)else:print(-1)
else:print(-1)

写法二:

rfind

向前查询

s,s1,s2 = input().split(",")
a = s.find(s1)
b = s.rfind(s2)
if(a == -1 or b == -1 or a+len(s1) >= b):print("-1")
else:print(b-a-len(s1))

九、最长公共字符串后缀

在这里插入图片描述

while True:n = int(input())if n == 0:breakls = []for i in range(n):ls.append(input().strip()[::-1])s1 = min(ls)#获取ls中最小的元素s2 = max(ls)res = ''for i in range(len(s1)):if s1[i] == s2[i]:res += s1[i]else:breakprint(res[::-1])

相关内容

热门资讯

武陵山天空被鸟群刷屏 转自:JSTV荔枝视频 【#武陵山天空被鸟群刷屏#】眼下...
河南鹤壁有人下河摸金摸铜钱?当... 近日,有网民发布视频称,位于河南省鹤壁市浚县新镇镇卫河流域,有人下河摸金摸铜钱,引发关注。视频显示,...
大连西山水库出现成群黑色大鱼,... 来源:半岛晨报 5月6日下午,市民王先生在大连西山水库发现一群体型较大、通体黝黑的无鳞怪鱼,经专家鉴...
助力工业精神传承,培养创新型人... 5月10日,记者从柳州市教育局获悉,为了更好地将工匠精神、实业报国融入思想政治教育,柳州将打造大中小...
牌桌上的美丽绽放——欧碧奴美容... 转自:衡水日报2025年5月9日,成都青白江东方欲晓十五里休闲中心,160位欧碧奴会员姐姐与亲友闺蜜...
婚姻登记“全国通办”政策问答 来源:“中国民政”微信公号5月10日,新修订的《婚姻登记条例》正式施行,婚姻登记实现“全国通办”。为...
强对流天气致墙体倒塌 3人死亡... 来源:国家应急广播 近日广西百色有网友称参加葬礼时遭遇强对流天气墙体倒塌致多人死伤相关话题冲上社交平...
珍酒李渡举行2024年度股东周... 5月9日,珍酒李渡集团2024年度股东周年大会暨投资者交流会在湖南长沙1912珍酒美食研究所举行,股...
全国仅12个入选!梧州六堡茶国... 转自:梧州发布日前,国家知识产权局公布第一批国家地理标志保护示范区典型案例,全国仅12个保护示范区入...
美业全新动态:杭州美莱受邀出席... 转自:蚌埠新闻网2025年5月7日,杭州美莱受邀亮相2025中国时尚美学盛典Moly Gala,以"...
青年与城市如何共成长?50人论... 来源:中国新闻网 中新网上海5月10日电 题:青年与城市如何共成长?50人论坛交出“上海答卷”作者 ...
葬礼上再发惨剧!3人确认死亡,... 近日,广西百色网友称,参加葬礼遇强对流天气,墙体倒塌致多人死伤。韦女士接受记者采访时表示,近日与家人...
国海证券原总裁意外离世!年61... (转自:金融街1号狙击手)5月10日,据券商中国报道,国海证券原总裁齐国旗近日因遭遇交通意外,不幸离...
永达股份:子公司部分产品应用于... 永达股份(001239)5月9日在业绩说明会上表示,公司控股子公司江苏金源高端装备有限公司部分产品应...
永远不能忘却的纪念(今日谈) 来源:人民日报80年前的伟大胜利打败了不可一世的法西斯势力,带给世人恒久的启迪:光明必将驱散黑暗,正...
社工“寻味儿”救场避免险情   本报讯(实习记者侯国棣)近日,平谷区滨河街道南小区社区84岁的李大爷忘记了厨房正在煮饭的锅,把锅...
美元贬值,这次不一样 美国总统特朗普经常说希望美元贬值。在他看来,这可以降低制造业出口成本,从而促进出口,帮助减少美国巨额...
张本智和:深受雨果世界杯夺冠冲... 来源:九派新闻 近日,日本乒乓球队举行多哈世乒赛赛前新闻发布会,日本男乒选手张本智和在接受采访时谈到...
具茨山原来是中华文明的C位 【#具茨山原来是中华文明的C位#】具茨山位于黄帝故里河南新郑西南,属中岳嵩山东南余脉,东西延绵约40...
李姓股民向ST东时发起索赔 刘...   受损股民可至Hehson股民维权平台登记该公司维权:http://wq.finance.sina...