您当前的位置: 首页 > 

TechGuide

暂无认证

  • 3浏览

    0关注

    176博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【2022-09-14】米哈游秋招笔试三道编程题

TechGuide 发布时间:2022-09-15 00:24:59 ,浏览量:3

恭喜发现宝藏!搜索公众号【TechGuide】回复公司名,解锁更多新鲜好文和互联网大厂的笔经面经,目前已更新至美团、微软… 作者@TechGuide【全网同名】 点赞再看,养成习惯,您动动手指对原创作者意义非凡🤝

第一题:最短子串 题目描述

米小游拿到了一个字符串,她想截取一个连续子串,使得该子串中包含至少k个连续的“mihoyo”。

你可以帮米小游求出最短的子串长度,以及对应的子串位置吗?

输入描述

第一行输入两个正整数n和k,用空格隔开。

第二行输入一个长度为n的、仅由小写字母组成的字符串。1≤k≤n≤200000

22 2 mihoyoyomihoyomimihoyo

输出描述

如果不存在这样一个连续子串,请输出-1。

否则输出两个正整数l,r,代表选取的子串的左下标和右下标(整个字符串左下标为0,右下标为n-1)。

请务必保证选择的连续子串包含至少k个"mihoyo",且长度是最短的。有多解时输出任意即可。

0 13

代码 Java版本
    public static void main1(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int k = sc.nextInt();
        String s = sc.next();
        String tmp = "mihoyo";
        List l = new ArrayList();
        // 先尝试获取 mihoyo 的位置,这里用list存储m的索引
        for(int i = 0; i > s;
    int idx = s.find("mihoyo");
    int ans = 2 * n;
    vector a;
    int pre = 0;
    while (idx != -1) {
        a.push_back(idx + pre);
        pre = pre + idx + 6;
        string tmp = s.substr(pre);
        idx = tmp.find("mihoyo");
    }
    if (a.size()             
关注
打赏
1665329535
查看更多评论
0.0406s