6.2.7 单词替换
题目描述:
输入一个字符串,以回车结束(字符串长度不超过 100)。
该字符串由若干个单词组成,单词之间用一个空格隔开,所有单词区分大小写。
现需要将其中的某个单词替换成另一个单词,并输出替换之后的字符串。
输入格式:
输入共 3行。
第 1 行是包含多个单词的字符串 s;
第 2 行是待替换的单词 a(长度不超过 100);
第 3 行是 a 将被替换的单词 b(长度不超过 100)。
输出格式:
共一行,输出将 s 中所有单词 a 替换成 b 之后的字符串。
输入样例:
You want someone to help you You I
输出样例:
I want someone to help you
在线评测环境:AcWing 770. 单词替换
代码:
str = input().split(' ') a = input() b = input() for i in range(len(str)): if (str[i] == a): str[i] = b str1 = ' '.join(str) print(str1)
6.2.8 字符串中最长的连续出现的字符
题目描述:
求一个字符串中最长的连续出现的字符,输出该字符及其出现次数,字符串中无空白字符(空格、回车和 tab),如果这样的字符不止一个,则输出第一个。
输入格式:
第一行输入整数 N,表示测试数据的组数。
每组数据占一行,包含一个不含空白字符的字符串,字符串长度不超过 200。
输出格式:
共一行,输出最长的连续出现的字符及其出现次数,中间用空格隔开。
输入样例:
2 aaaaabbbbbcccccccdddddddddd abcdefghigk
输出样例:
d 10 a 1
在线评测环境:AcWing 771. 字符串中最长的连续出现的字符
代码:
n = int(input()) for i in range (n): s = input() cnt, cc = 0, '' max, mc = 0, '' for i in range (len(s)): if (s[i]) == cc: cnt += 1 if s[i] != cc or i == len(s) - 1: if max < cnt: max = cnt mc = cc cnt = 1 cc = s[i] print (mc, max)
6.2.9 最长单词
题目描述:
一个以.
结尾的简单英文句子,单词之间用空格分隔,没有缩写形式和其它特殊形式,求句子中的最长单词。
输入格式:
输入这个简单英文句子,长度不超过 500。
输出格式:
该句子中最长的单词。如果多于一个,则输出第一个。
输入样例:
I am a student of Peking University.
输出样例:
University
在线评测环境:AcWing 774. 最长单词
代码:
s = input() s = s[:-1].split() m = '' for i in s: if len(i) > len(m): m = i print(m)
6.2.10 倒排单词
题目描述:
编写程序,读入一行英文(只包含字母和空格,单词间以单个空格分隔),将所有单词的顺序倒排并输出,依然以单个空格分隔。
输入格式:
输入为一个字符串(字符串长度至多为 100)。
输出格式:
输出为按要求排序后的字符串。
输入样例:
I am a student
输出样例:
student a am I
在线评测环境:AcWing 775. 倒排单词
代码:
s = input().split(' ') s.reverse() s = ' '.join(s) print(s)
6.2.11 递归求斐波那契数列
题目描述:
请使用递归的方式求斐波那契数列的第 n 项。
斐波那契数列:1,1,2,3,5…,这个数列从第 3 项开始,每一项都等于前两项之和
输入格式:
共一行,包含整数 n。
输出格式:
共一行,包含一个整数,表示斐波那契数列的第 n 项。
输入样例:
4
输出样例:
3
在线评测环境:AcWing 820. 递归求斐波那契数列
代码:
def mul(n): if n == 1: return 1 elif n == 2: return 1 else: return mul(n - 1) + mul(n - 2) n = int(input()) print(mul(n))
6.2.12 最大公约数
题目描述:
输入两个整数 a 和 b,请你编写一个函数,int gcd(int a, int b), 计算并输出 a 和 b 的最大公约数。
输入格式:
共一行,包含两个整数 a 和 b。
输出格式:
共一行,包含一个整数,表示 a 和 b 的最大公约数。
输入样例:
12 16
输出样例:
4
在线评测环境:AcWing 808. 最大公约数
代码:
def gcd(m, n): min = m if m > n : min = n for i in range(min, 0, -1): if m % i == 0 and n % i == 0: return i m, n = input().split() print(gcd(int(m), int(n)))
6.2.13 最小公倍数
题目描述:
输入两个整数 a 和 b,请你编写一个函数,int lcm(int a, int b),计算并输出 a 和 b 的最小公倍数。
输入格式:
共一行,包含两个整数 a 和 b。
输出格式:
共一行,包含一个整数,表示 a 和 b 的最小公倍数。
输入样例:
6 8
输出样例:
24
在线评测环境:AcWing 809. 最小公倍数
代码:
def gcd(m, n): min = m if m > n : min = n for i in range(min, 0, -1): if m % i == 0 and n % i == 0: return i def lcm(m, n): return m * n // gcd(m, n) m, n = input().split() print(lcm(int(m), int(n)))