显示英文描述 通过的用户数1232 尝试过的用户数1484 用户总通过次数1247 用户总提交次数2857 题目难度Medium 给你一个下标从 0 开始的字符串 s ,这个字符串只包含 0 到 9 的数字字符。 如果一个字符串 t 中至多有一对相邻字符是相等的,那么称这个字符串是 半重复的 。 请你返回 s 中最长 半重复 子字符串的长度。 一个 子字符串 是一个字符串中一段连续 非空 的字符。
时间: 2024-04-01 09:31:39 浏览: 171
You are given a string s consisting of digits from 0 to 9, indexed starting from 0. A string t is considered to be "semi-repeating" if it has at most one pair of adjacent equal characters. Return the length of the longest semi-repeating substring in s. A substring is a contiguous non-empty sequence of characters within a string.
Some examples:
- Input: s = "122345"
Output: 2
Explanation: The longest semi-repeating substring is "22".
- Input: s = "123456"
Output: 0
Explanation: There is no semi-repeating substring in s.
- Input: s = "12223456"
Output: 4
Explanation: The longest semi-repeating substring is "2223".
相关问题
2、编写一小游戏,出题为随机成语,在其随机位置划线。例如出题:画蛇 足答题 添为正确答案,答对提示正确,答错则提示错误并显示正确答案。原始分10分,用户可以选择不同难度题目,难度简单的题答对加1分,错误扣1分,难度中级的题答对加2分,答错扣2分,以此类推,分数为负数时则提示挑战失败,退出游戏前如果分值有在前5名,则可以计入游戏榜单。(游戏规则也可以自己另外设定,例如难度简单的题做几题后自动抽取难度中级一直到难度最高的题,界面自行设计,如有修订规则,在说明代码之前说明一下自己设定的规则。)
本游戏设定为随机抽取一个成语,并在其中随机一个字加下划线,要求玩家填入正确的成语,如果填写正确则加分,否则扣分。游戏共设有3个难度级别:简单、中等和困难,分别对应加分和扣分的不同数值。游戏结束后,如果分数排名前5名,则可将玩家分数添加到游戏榜单中。
以下是游戏代码:
```python
import random
# 成语列表,可自行添加更多成语
idioms = ['画蛇添足', '井底之蛙', '守株待兔', '杀鸡焉用牛刀', '班门弄斧', '对牛弹琴', '半途而废', '海底捞针', '卧薪尝胆', '画龙点睛']
# 定义游戏难度级别
difficulty_levels = {
'easy': {'score_increment': 1, 'score_decrement': 1, 'num_questions': 5},
'medium': {'score_increment': 2, 'score_decrement': 2, 'num_questions': 10},
'hard': {'score_increment': 3, 'score_decrement': 3, 'num_questions': 15}
}
# 游戏榜单,最多存储5个玩家分数
high_scores = []
# 随机抽取一个成语,并在其中随机一个字加下划线
def generate_question():
idiom = random.choice(idioms)
index = random.randint(0, len(idiom)-1)
question = idiom[:index] + '_' + idiom[index+1:]
answer = idiom
return question, answer
# 在控制台中显示游戏界面
def show_game_interface(question, score):
print('当前得分:', score)
print('请填写下面的成语:')
print(question)
# 计算并显示游戏结果
def show_game_result(score):
print('游戏结束!你的分数是:', score)
if score < 0:
print('挑战失败!')
else:
print('恭喜你获得了胜利!')
if len(high_scores) < 5 or score > high_scores[-1]['score']:
name = input('请输入你的名字:')
high_scores.append({'name': name, 'score': score})
high_scores.sort(key=lambda x: x['score'], reverse=True)
if len(high_scores) > 5:
high_scores.pop()
# 开始游戏
def start_game(difficulty):
score_increment = difficulty_levels[difficulty]['score_increment']
score_decrement = difficulty_levels[difficulty]['score_decrement']
num_questions = difficulty_levels[difficulty]['num_questions']
score = 0
for i in range(num_questions):
question, answer = generate_question()
show_game_interface(question, score)
user_answer = input('请输入你的答案:')
if user_answer == answer:
score += score_increment
print('回答正确,得分+', score_increment)
else:
score -= score_decrement
print('回答错误,扣分-', score_decrement, ',正确答案是', answer)
show_game_result(score)
# 显示游戏榜单
def show_high_scores():
if len(high_scores) == 0:
print('暂无排行榜!')
else:
print('游戏排行榜:')
for i, high_score in enumerate(high_scores):
print(i+1, '.', high_score['name'], '-', high_score['score'], '分')
# 选择游戏难度
def select_difficulty():
print('请选择游戏难度:')
print('1. 简单')
print('2. 中等')
print('3. 困难')
choice = input('请输入你的选择(1-3):')
if choice == '1':
start_game('easy')
elif choice == '2':
start_game('medium')
elif choice == '3':
start_game('hard')
else:
print('无效的选择!')
# 显示游戏主菜单
def show_main_menu():
print('欢迎来到成语游戏!')
print('1. 开始游戏')
print('2. 显示排行榜')
print('3. 退出游戏')
choice = input('请输入你的选择(1-3):')
if choice == '1':
select_difficulty()
elif choice == '2':
show_high_scores()
elif choice == '3':
exit()
else:
print('无效的选择!')
# 循环显示游戏主菜单
while True:
show_main_menu()
```
在游戏中,玩家可以通过输入数字来选择游戏难度。在游戏过程中,玩家需要填写下划线后面的成语,并根据填写的成语是否正确来获得或扣除分数。游戏结束后,玩家的分数将被添加到游戏榜单中,并根据分数排名进行排序。玩家可以选择在游戏主菜单中查看游戏榜单或退出游戏。
阅读全文