ipc1 - 提取子序列 subarr

提取子序列 subarr

Description

「信息学(Informatics)」的另一个译名是「情报学」,这个名字在日本见得比较多。日文的「情報」读音为「Jyouhou」。

现在有一个长为 nn 的字符串 SS ,SS中只包含大小写英文字母或数字。按从前往后的顺序读字符串SS,从SS中取出最靠前的一个子序列构成Jyouhou串,取出一个串后,从最后一个字符的后一个位置继续尝试取出,直到剩余部分已无法取出一个Jyouhou串。请求出对于给定的SS,取出的Jyouhou串的数量是多少。

子序列:从一个序列中取出若干元素(不要求相邻)组成的一个新序列,新序列元素的顺序按照原序列中元素的相对顺序确定。

你可以参考样例解释来帮助理解上面的流程。

Input

测试点包含多组测试数据。

第一行包含一个正整数T \ (1 \leq T \leq 20)T (1≤T≤20),表示测试数据组数。

每组数据中包含两行。第一行包含一个正整数n \ (1 \leq n \leq 10^4)n (1≤n≤104),表示字符串SS的长度。第二行包含一个字符串SS,含义见「题目描述」。

Output

对于每一组测试数据,输出一行一个正整数,表示该组数据的答案。

Sample Input 1 Sample Output 1

 

3
20
JJSy2ouhuouJ5yoxuhou
10
aaaaaaaaaa
14
JyouhoJuyouhou

 

2
0
1

Hint

第一组数据中,找到的 2 个Jyouhou串为JJSy2ouhuouJ5yoxuhou

第二组数据中,由于不存在 J、y、o、u、h 字符,故无法找到任何一个Jyouhou串。

第三组数据中,找到的Jyouhou串为JyouhoJuyouhou。由于前一个Jyouhou串的最后一个字符 u 在第二个字符 J 前面,字符 u 后面已经无法再找到一个Jyouhou串了,因此只能找出 1 个。

Reference Answer 

def main():
    N = int(input())
    ans = 0
    while N > 0:
        length = int(input())
        psw = 'Jyouhou'
        info = input()
        index = 0
        for i in info:
            if i == psw[index]:
                index += 1
            if index == 6:
                index = 0
                ans += 1
        N -= 1
    print(ans)

if __name__ == "__main__":
    main()

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值