百度机器学习/数据挖掘/NLP笔试题----【编程题】【字符串】【切片】【字符串出现次数】

题目描述

姆巴特是一名现役特种兵,他马上就要去参加特种兵大赛,特种兵大赛不仅对体能体格有很高的要求,还需要选手具备超强的智力和反应能力。为了训练姆巴特的反应能力和临场动脑能力,教练写了一长串文字A,还写了一串文字B,训练总共Q次,每次教练会告诉姆巴特两个数字l和r,姆巴特需要快速找出B在A[l...r]中出现了几次,A[l...r]表示从A的A[l]开始长度为r-l+1的子串

输入

第一行一个字符串A

第二行一个字符串B,两个字符串保证均只含小写字母。(1<=|A|<=500000,1<=|B|<=100)

第三行一个正整数Q,表示训练的次数(1<=Q<=100000)

接下来m行每行两个整数l和r,表示一段区间(1<=r<=|A|)

输出

共Q行,每行一个非负整数,表示出现的次数。

样例输入

comeonmandontconconnect

on 

5

1 5

1 6

1 23

11 16

11 23

样例输出

0
1
4
2
3

 代码实现

def find():
    
    a=input()
    b=input()
    q=input()
    li=[]
    for i in range(int(q)):
        area=input()
        left=area.split()[0] #[0]表示选取第0个分片
        right=area.split()[1]
        left=int(left)
        right=int(right)
        li.append(a[left-1:right].count(b))
    for i in range(len(li)):
        print(li[i])
        print('\n')   
#测试         
find()

输出结果

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值