首页 > 试题广场 >

穷哈哈~

[编程题]穷哈哈~
  • 热度指数:10891 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
"你叉叉,唱日出,穷哈哈,唱日落.....",小哈开心地哼着小调,因此小哈是一个爱笑的人,每次笑都很有魔性,调皮地小哼记录了小哈的一次说的话,其中里面可能包含了小哈的笑声,并以为字符串来记录小哈的话。已知,小哈的笑声是字母交替的序列,例如:,,是符合笑声的合法序列。但是,,不符合笑声的合法序列。
通过小哼的记录,请你求出小哈笑声的最大长度。

输入描述:
输入的第一行给出小哈说话的长度
随后一行中输入一行长度为字符串——表示小哈的话。
{1 \leq N \leq 10^5}
仅由小写字母组成。


输出描述:
输出小哈笑声的最大长度。
示例1

输入

7
abacaba

输出

1
示例2

输入

20
ahahahahahahahahahah

输出

20
import sys

n = int(input())
s = input()

def ok(a,b):
    if (a == 'a' or a == 'h') and (b =='a' or b == 'h') and a != b:
        return True
    else:
        return False

if s[0] == 'a' or s[0] == 'h':
    long = 1
else:
    long = 0
lens = 0

for i in range(1,n):
    if (ok(s[i],s[i-1])):
        lens = max(2,lens+1)
    else:
        long = max(long,lens)
        lens = 0
long = max(long,lens)
print(long)
发表于 2025-11-18 13:31:59 回复(0)
N = int(input())
S = input()

max_len = 0
if S[0]=='a' or S[0]=='h':
    tmp_len = 1
else:
    tmp_len = 0
for i in range(1,len(S)):
    if (S[i]!='a' and S[i]!='h') or S[i-1:i+1]=='aa' or S[i-1:i+1]=='hh':
        if tmp_len>max_len:
            max_len = tmp_len
        tmp_len = 0
    if S[i]=='a' or S[i]=='h':
        tmp_len += 1
        if tmp_len>max_len:
            max_len = tmp_len

print(max_len)
发表于 2025-08-24 15:56:07 回复(0)