1.【描述】
编写程序,统计并输出某给定字符在给定字符串中出现的次数。
【输入】
第一行给出一个以回车结束的字符串;第二行输入一个字符。
【输出】
在一行中输出给定字符在给定字符串中出现的次数。
【输入示例】
programming is More fun!
m
【输出示例】
2
代码示例:
s = input()
ch = input()
print(s.count(ch))
2.【描述】
编写程序,从给定字符串中查找某指定的字符。
【输入】
第一行是一个待查找的字符。第二行是一个以回车结束的非空字符串。
【输出】
如果找到,在一行内按照格式"index = 下标"输出该字符在字符串中所对应的最大下标(下标从0开始);否则输出"Not Found"。
【输入示例】
m
programming
【输出示例】
index = 7
代码示例:
ch = input()
s = input()
r = s.rfind(ch)
print(("index = %d" % (r)) if r != -1 else "Not Found")
python字符串rfind()方法: Python 字符串 rfind() 方法-CJavaPy
3.【描述】
编写程序,要求提取一个字符串中的所有数字字符('0'……'9'),将其转换为一个整数输出。
【输入】
在一行中给出一个以回车结束的字符串。
【输出】
在一行中输出转换后的整数。
【输入示例】
free82jeep5
【输出示例】
825
代码示例:
s = input()
i = 0
t = "0123456789"
for i in range(len(s)):
if s[i] in t:
print(s[i], end='')
i = i + 1
由此可见,python字符串也可以完成下标索引
4.【描述】
脱氧核糖核酸(DNA)由两条互补的碱基链以双螺旋的方式结合而成。而构成DNA的碱基共有4种,分别为腺瞟呤(A)、鸟嘌呤(G)、胸腺嘧啶(T)和胞嘧啶(C)。在两条互补碱基链的对应位置上,腺瞟呤总是和胸腺嘧啶配对,鸟嘌呤总是和胞嘧啶配对。你的任务就是根据一条单链上的碱基序列,给出对应的互补链上的碱基序列。
【输入】
第一行是一个正整数n,表明共有n条要求解的碱基链。
以下共有n行,每行用一个字符串表示一条碱基链。这个字符串只含有大写字母A、T、G、C,分别表示腺瞟呤、胸腺嘧啶、鸟嘌呤和胞嘧啶。每条碱基链的长度都不超过255。
【输出】
共有n行,每行为一个只含有大写字母A、T、G、C的字符串。分别为与输入的各碱基链互补的碱基链。
【输入示例】
5
ATATGGATGGTGTTTGGCTCTG
TCTCCGGTTGATT
ATATCTTGCGCTCTTGATTCGCATATTCT
GCGTTTCGTTGCAA
TTAACGCACAACCTAGACTT
【输出示例】
TATACCTACCACAAACCGAGAC
AGAGGCCAACTAA
TATAGAACGCGAGAACTAAGCGTATAAGA
CGCAAAGCAACGTT
AATTGCGTGTTGGATCTGAA
代码示例:
n = int(input())
for i in range(n+1):
s = input()
for i in range(len(s)):
if s[i] == 'A':
print('T', end='')
i += 1
elif s[i] == 'G':
print('C', end='')
i += 1
elif s[i] == 'C':
print('G', end='')
i += 1
elif s[i] == 'T':
print('A', end='')
i += 1
5.【描述】
输入一个字符串,统计并输出该字符串中26个英文字母(不区分大小写)出现的次数。
【输入】
输入一个字符串。
【输出】
分行输出26个英文字母(不区分大小写)出现的次数。
【输入示例】
I am a student.
【输出示例】
a:2
d:1
e:1
i:1
m:1
n:1
s:1
t:2
u:1
代码示例:
line = input()
counts = [0 for i in range(26)]
for ch in line:
if ch.isalpha(): # isalpha() 可以判断「字符串」是否只包含「字母」,字符串的所有字符都是字母返回True
if ch.isupper(): # 判断字母是否为大写
ch = ch.lower() # 若是,则转换为小写
counts[ord(ch) - ord('a')] += 1
for i in range(26):
if counts[i] != 0:
print("%c:%d" % (chr(ord('a') + i), counts[i]))
6.【描述】
输入5个字符串,输出其中最大的字符串。
【输入】
输入5个字符串。
【输出】
输出5个字符串中最大的字符串。
【输入示例】
red
blue
yellow
green
purple
【输出示例】
yellow
代码示例:
s1 = input()
s2 = input()
s3 = input()
s4 = input()
s5 = input()
print(max(s1,s2,s3,s4,s5))
7.【描述】
两个单词如果包含相同的字母,次序不同,则称为字母易位词(anagram)。例如,"silent"和"listen"是字母易位词。
定义函数:def is_anagram(s1, s2),检查两个单词是否是字母易位词,如果是,返回True;否则返回False。
【输入】
有两行,分别对应两个单词。
【输出】
若两个单词是字母易位词,输出True,否则输出False。
【输入示例】
silent
listen
【输出示例】
True
代码示例:
def is_anagram(s1, s2):
m = sorted(s1)
n = sorted(s2)
return m == n
def main():
str1 = input()
str2 = input()
print(is_anagram(str1, str2))
main()
8.【描述】
首字母缩略词是由一个短语中每个单词的第一个字母组成,均为大写。例如,CPU是短语"central processing unit"的缩写。
定义函数:def is_acronym(s),s是短语,返回短语的首字母缩略词。
【输入】
一行中输入一个短语,短语中每个单词以空格间隔。
【输出】
该短语的首字母缩略词。
【输入示例】
central processing unit
【输出示例】
CPU
代码示例:
def is_acronym(s):
s1 = ""
if 'a' <= s[0] <= 'z' or 'A' <= s[0] <= 'Z':
s1 = s[0].upper()
for i in range(len(s)):
if s[i - 1] == ' ':
s1 = s1 + s[i].upper()
return s1
def main():
phrase=input()
print(is_acronym(phrase))
main()
9.【描述】
依次计算一系列给定字符串的字母值,字母值为字符串中每个字母对应的编号值(A对应1,B对应2,以此类推,不区分大小写字母,非字母字符对应的值为0)的总和。例如,Colin的字母值为3+15+12+9+14=53
【输入】多行字符串,每个字符串占一行。
【输出】
计算并输出每行字符串的字母值。
【输入示例】
Colin
ABC
【输出示例】
53
6
代码示例:
stop = ''
for s in iter(input, stop):
total = 0
for i in range(len(s)):
if s[i].isalpha():
total += (ord(s[i].upper()) - ord('A') + 1)
print(total)
10.【描述】
"distance"和"disinfection"的共有前缀是"dis"。
定义函数:def prefix(s1, s2),检查两个字符串是否有共有前缀,如果有,返回该共有前缀;否则返回None。
编写一个main函数,输入两个字符串,调用prefix函数,显示共有前缀或"No common prefix"。
【输入】
有两行,分别对应两个字符串。
【输出】
若两个字符串有共有前缀,输出该共有前缀,否则输出"No common prefix"。
【输入示例】
distance
disinfection
【输出示例】
dis
代码示例:
def prefix(s1, s2):
str = ''
i = 0
while i < len(s1) and i < len(s2):
if s1[i] == s2[i]:
str += s1[i]
else:
break
i += 1
if len(str) == 0:
return None
else:
return str
def main():
str1 = input()
str2 = input()
str = prefix(str1, str2)
print(str if str != None else "No common prefix")
main()