今天的题过于简单了或者就是写着很没意思
1. 单词加密
1.1. 题目描述
1、输入一个英文句子,句子中包含若干个单词,每个单词间有一个空格;
2、需要将句子中的每个单词按照要求加密输出。
要求:
1)单词中包括元音字符(‘aeuio’、‘AEUIO’,大小写都算),则将元音字符替换成‘*’
2)单词中不包括元音字符,将单词首尾字符进行对换
1.2. 输入描述
输入只有一行,包含一个长度都不超过100的字符串,表示英文句子。
1.3. 输出描述
输出只有一行,即按要求输出加密处理后的英文句子
1.4. 用例
输入 Hello world
输出 H*ll* w*rld
1.5. 代码
import re
def encrypt1(string: str) -> str:
ans = ''
for word in string.split():
ans += word[-1] + word[1:-1] + word[0] + ' '
return ans.strip()
def encrypt2(string: str) -> str:
return re.sub(r'[aeiou]', '*', string, flags=re.IGNORECASE)
def solution(words: str) -> str:
ans = ''
for word in words.split():
if re.match(r'[aeiou]', string, flags=re.IGNORECASE):
ans += word[-1] + word[1:-1] + word[0] + ' '
else:
ans += re.sub(r'[aeiou]', '*', string, flags=re.IGNORECASE) + ' '
return ans.strip()
2. 单词接龙
2.1. 题目描述
单词接龙的规则是:
可用于接龙的单词首字母必须要前一个单词的尾字母相同;
当存在多个首字母相同的单词时,取长度最长的单词,如果长度也相等,则取字典序最小的单词;已经参与接龙的单词不能重复使用。
现给定一组全部由小写字母组成单词数组,并指定其中的一个单词作为起始单词,进行单词接龙,
请输出最长的单词串,单词串是单词拼接而成,中间没有空格。
2.2. 输入描述
输入的第一行为一个非负整数,表示起始单词在数组中的索引K,0 <= K < N ;
输入的第二行为一个非负整数,表示单词的个数N;
接下来的N行,分别表示单词数组中的单词。
备注:
单词个数N的取值范围为[1, 20];
单个单词的长度的取值范围为[1, 30];
2.3. 输出描述
输出一个字符串,表示最终拼接的单词串。
2.4. 用例
- 输入
0
6
word
dd
da
dc
dword
d - 输出
worddwordda - 说明
先确定起始单词word,再接以d开头的且长度最长的单词dword,剩余以d开头且长度最长的有dd、da、dc,则取字典序最小的da,所以最后输出worddwordda。
- 输入
4
6
word
dd
da
dc
dword
d - 输出
dwordda - 说明
先确定起始单词dword,剩余以d开头且长度最长的有dd、da、dc,则取字典序最小的da,所以最后输出dwordda。
2.5. 代码
def solution(words):
ans = words[0]
words.remove(words[0])
while True:
candidate = [(-len(word), word) for word in words if word.startswith(ans[-1])]
candidate.sort()
if not candidate:
break
words.remove(candidate[0][-1])
ans += candidate[0][-1]
return ans
3. 单词重量
3.1. 题目描述
每个句子由多个单词组成,句子中的每个单词的长度都可能不一样,我们假设每个单词的长度Ni为该单词的重量,你需要做的就是给出整个句子的平均重量V。
3.2. 输入描述
无
3.3. 输出描述
无
3.4. 用例
输入 Who Love Solo
输出 3.67
说明 无
3.5. 代码
def solution(sentence):
cnt_sentence = len(sentence.split())
return (len(sentence) - cnt_sentence) / cnt_sentence
4.德州扑克
4.1. 题目描述
五张牌,每张牌由牌大小和花色组成,牌大小2~10、J、Q、K、A,牌花色为红桃、黑桃、梅花、方块四种花色之一。
判断牌型:
牌型1,同花顺:同一花色的顺子,如红桃2红桃3红桃4红桃5红桃6。
牌型2,四条:四张相同数字 + 单张,如红桃A黑桃A梅花A方块A + 黑桃K。
牌型3,葫芦:三张相同数字 + 一对,如红桃5黑桃5梅花5 + 方块9梅花9。
牌型4,同花:同一花色,如方块3方块7方块10方块J方块Q。
牌型5,顺子:花色不一样的顺子,如红桃2黑桃3红桃4红桃5方块6。
牌型6,三条:三张相同+两张单。
说明:
(1)五张牌里不会出现牌大小和花色完全相同的牌。
(2)编号小的牌型较大,如同花顺比四条大,依次类推。
(3)包含A的合法的顺子只有10 J Q K A和A 2 3 4 5;类似K A 2 3 4的序列不认为是顺子。
4.2. 输入描述
输入由5行组成,每行为一张牌大小和花色,牌大小为2~10、J、Q、K、A,花色分别用字符H、S、C、D表示红桃、黑桃、梅花、方块。
4.3. 输出描述
输出牌型序号,5张牌符合多种牌型时,取最大的牌型序号输出。
4.4. 用例
- 输入
4 H
5 S
6 C
7 D
8 D - 输出
5 - 说明
4 5 6 7 8构成顺子,输出5
- 输入
9 S
5 S
6 S
7 S
8 S - 输出
1 - 说明
既是顺子又是同花,输出1,同花顺