蓝桥杯Python组——字符串
例1:
n = int(input())
# 这个for循环用来原封不动输出前n行字符串
for i in range(n):
print(input()+"\n")
#以空格作为分片标准依次输出
while True:
try:
a = input().split()
for s in a:
print (s + "\n")
except:
break
解析:
此题分为两个部分,将前n行字符串原封不动输出后就可以将之后的简化为简单的分片输出了。
例2:
题目链接
# 生成字符串的函数
def ABC(n):
if n==1:
return "A"
else:
return ABC(n-1) + chr(64+n) + ABC(n-1)
while True:
try:
a = int(input())
print(ABC(a))
except:
break
解析:
这个串的特点是把上一级的串放在首尾,然后中间夹一个新的字母。这里用到递归函数来操作。chr()是根据ASCII码输出数字对应的字符。
例3:
while True :
try:
a = input().split()
if a[0]>a[1]:
print(1)
if a[0]<a[1]:
print(-1)
if a[0]==a[1]:
print(0)
except:
break
解析:
这里字符可以直接用大小与号进行比较。不用麻烦的转化码值。
例4:
while True:
try:
a = input().split()
max_num = 0
max_str = ""
for count in range (5):
if len(a[count]) > max_num:
max_num = len(a[count])
max_str = a[count]
print(max_str)
except:
break
例5:
while True:
try:
a = input().split()
if a[0] == a[1]:
print(0)
else:
count = 0
while True:
if a[0][count] == a[1][count]:
count+=1
if a[0][count] != a[1][count]:
break
ans = ord(a[0][count]) - ord(a[1][count])
print(ans)
except:
break
解析:
这里有个坑,他说“第一个不同字符的码值差”。所以程序中要判断一下从哪里开始不同的。