这一周难度不大,尽量自己做做看看,然后可以评论,我们互相借鉴,欢迎关注,如果有用麻烦点个赞,谢谢。
目录
7-1 sdut-输出字母在字符串中位置索引 (10 分)
输入一个字符串,再输入两个字符,求这两个字符在字符串中的索引。
输入格式:
第一行输入字符串;
第二行输入两个字符,用空格分开。
输出格式:
从右向左输出字符和索引(中间有一个空格)。下标最大的字符最先输出。每行一个。
输入样例:
pmispsissippi
s p
结尾无空行
输出样例:
11 p
10 p
8 s
7 s
5 s
4 p
3 s
0 p
答案:
# Description: 命里有时终须有,命里无时莫强求
# Autor: Neptune
# Date: 2021/10/13 10:06
n = input()
l1, l2 = map(str, input().split())
for i in range(len(n) - 1, -1, -1):
if n[i] == l1:
print(i, n[i])
elif n[i] == l2:
print(i, n[i])
7-2 sdut-逆序的N位数 (10 分)
读入一个正整数,(介于0与9223372036854775807之间)(前后可能有空白字符—空格或者Tab字符),位数不限,然后输出按位逆序的数字。
注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出7。
输入格式:
输入一个正整数。
输出格式:
输出按位逆序的数。
输入样例1:
123456789
结尾无空行
输出样例1:
987654321
结尾无空行
输入样例2:
10000000
结尾无空行
输出样例2:
1
结尾无空行
输入样例3:
0000000
结尾无空行
输出样例3:
0
结尾无空行
答案:
# Description: 命里有时终须有,命里无时莫强求
# Autor: Neptune
# Date: 2021/10/13 10:13
ll = input()
n = 0
q = 0
for i in ll:
if i.isdigit():
n += (10 ** q) * int(i)
q += 1
print(n)
7-3 sdut-判断两个字符串是否为变位词 (10 分)
如果一个字符串是另一个字符串的重新排列组合,那么这两个字符串互为变位词。
比如,"heart" 与 "earth" 互为变位词,"Mary" 与 "arMy" 也互为变位词。“Hello world"与“worldHello"不是变位词。
输入格式:
第一行输入第一个字符串;
第二行输入第二个字符串。
输出格式:
若是变位词,输出:yes;否则,输出:no。
输入样例1:
Mary
arMy
结尾无空行
输出样例1:
yes
结尾无空行
输入样例2:
hello world
world hello
结尾无空行
输出样例2:
yes
结尾无空行
输入样例3:
I am very good.
verygood I am.
结尾无空行
输出样例3:
no
结尾无空行
答案:
# Description: 命里有时终须有,命里无时莫强求
# Autor: Neptune
# Date: 2021/10/13 10:36
n1=input()
n2=input()
op=1
for i in n1:
if n1.count(i)!=n2.count(i):
op=0
break
if op:
print("yes")
else:
print("no")
7-4 英文字母的大小写转换 (10 分)
输入一个大写字母c1和一个小写字母c2,把c1转换成小写,c2转换成大写,然后输出。
输入格式:
输入在一行中给出2个字母,第1个是大写字母c1,第2个是小写字母c2。
输出格式:
在一行中输出把c1转换成小写,c2转换成大写后的结果。数据之间留一个逗号。
输入样例:
Y e
输出样例:
y,E
答案:
# Description: 命里有时终须有,命里无时莫强求
# Autor: Neptune
# Date: 2021/10/13 10:42
n, m = map(str, input().split())
print("%s,%s" % (n.lower(), m.upper()))
7-5 求子串 (10 分)
输入一个字符串,输出该字符串的子串。
输入格式:
首先输入一个正整数k,然后是一个字符串s(可能包含空格,长度不超过20),k和s之间用一个空格分开。(k大于0且小于等于s的长度)
输出格式:
在一行中输出字符串s从头开始且长度为k的子串。
输入样例:
10 welcome to acm world
输出样例:
welcome to
答案:
# Description: 命里有时终须有,命里无时莫强求
# Autor: Neptune
# Date: 2021/10/13 10:53
n = input().split()
m = int(n[0])
q = 1
while m:
for i in n[q]:
if m > 0:
print(i, end='')
m -= 1
else:
q = 0
break
if q and m > 0:
print(" ", end="")
m -= 1
q += 1
7-6 查找字符串 (10 分)
在一行上输入两个字符串s和英文字符串t,要求在s中查找t。其中,字符串s,t均不包含空格,且长度均小于80。
输入格式:
首先输入一个正整数T,表示测试数据的组数,然后是T组测试数据。每组测试输入2个长度不超过80的字符串s和t(s和t都不包含空格)。
输出格式:
对于每组测试数据,若在s中找到t,则输出“Found!”,否则输出“not Found!”。引号不必输出。
输入样例:
2
dictionary lion
factory act
输出样例:
not Found!
Found!
答案:
# Description: 命里有时终须有,命里无时莫强求
# Autor: Neptune
# Date: 2021/10/13 11:04
n=int(input())
for i in range(n):
m1,m2=map(str,input().split())
if m2 in m1:
print('Found!')
else:
print('not Found!')
7-7 保持数列有序 (10 分)
有n个整数,已经按照从小到大顺序排列好,现在另外给一个整数x,请将该数插入到序列中,并使新的序列仍然有序。
输入格式:
测试数据有多组,处理到文件尾。每组测试先输入两个整数n(1≤n≤100)和x,再输入n个从小到大有序的整数。
输出格式:
对于每组测试,输出插入新元素x后的数列(元素之间留一个空格)。
输入样例:
3 3 1 2 4
输出样例:
1 2 3 4
答案:
# Description: 命里有时终须有,命里无时莫强求
# Autor: Neptune
# Date: 2021/10/13 11:07
def shell_sort(a): #希尔排序
l = int(len(a) / 2)
listp = []
while l > 0:
listp.append(l)
l = int(l / 2)
for q in listp:
for i in range(q, len(a)):
j = i
while j - q >= 0 and a[j - q] > a[j]:
swap(a, j, j - q)
j = j - q
for i in range(0, len(a)-1):
print(a[i],end=' ')
print(a[len(a)-1])
def swap(arr, a, b):
arr[a] = arr[a] + arr[b]
arr[b] = arr[a] - arr[b]
arr[a] = arr[a] - arr[b]
try:
while True:
n = input().split()
list1 = []
for i in range(1, len(n)):
list1.append(int(n[i]))
shell_sort(list1)
except EOFError:
pass
7-8 进制转换 (5 分)
输入一个十进制的整数。将它转换为二进制数、八进制数和十六进制数。
输入格式:
输入一个不超过100的十进制整数。
输出格式:
在一行内输出对应的二进制数、八进制数和十六进制数,以空格隔开。
输入样例:
在这里给出一组输入。例如:
8
结尾无空行
输出样例:
在这里给出相应的输出。例如:
1000 10 8
结尾无空行
答案:
# Description: 命里有时终须有,命里无时莫强求
# Autor: Neptune
# Date: 2021/10/13 11:43
n = int(input())
for i in range(2,len(bin(n))):
print(bin(n)[i],end='')
print(' ',end='')
for i in range(2,len(oct(n))):
print(oct(n)[i],end='')
print(' ',end='')
for i in range(2,len(hex(n))):
print(hex(n)[i],end='')
7-9 判断素数 (20 分)
判断一个给定的正整数是否素数
输入格式:
输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于1000000 的需要判断的正整数
输出格式:
对每个需要判断的正整数,如果它是素数,则在一行中输出Yes,否则输出No
输入样例:
在这里给出一组输入。例如:
2
11
111
结尾无空行
输出样例:
在这里给出相应的输出。例如:
Yes
No
结尾无空行
答案:
# Description: 命里有时终须有,命里无时莫强求
# Autor: Neptune
# Date: 2021/10/13 11:55
def prime(n):
k = 1
for i in range(2, (n // 2) - 1):
if n % i == 0:
k = 0
break
if k:
print("Yes")
else:
print("No")
n = int(input())
for i in range(n):
m = int(input())
prime(m)
7-10 查找字符串中最长的数字子串 (100 分)
查找一个字符串中最长的数字子串。
输入格式:
输入一个字符串。
输出格式:
输出最长的数字子串;如果字符串中没有数字,则输出’No’。
输入样例:
Enter 789 the final 8764end
结尾无空行
输出样例:
在这里给出相应的输出。例如:
8764
结尾无空行
输入样例:
Enter the final
结尾无空行
输出样例:
在这里给出相应的输出。例如:
No
结尾无空行
答案:
# Description: 命里有时终须有,命里无时莫强求
# Autor: Neptune
# Date: 2021/10/13 12:04
n = input().split()
list1 = []
for i in range(len(n)):
a = []
if n[i].isalpha():
continue
else:
for q in n[i]:
if q.isdigit():
a.append(q)
if len(a) > len(list1):
list1 = a
if list1!=[]:
for i in list1:
print(i,end='')
else:
print("No")