1 条题解

  • 0
    @ 2025-8-24 23:13:24

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar SerenityWay
    我曾经毁了我的一切 只想永远地离开

    搬运于2025-08-24 23:13:24,当前版本为作者最后更新于2025-04-13 17:37:40,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    由于是切割字符串,故不存在重叠的情况。所以可以遍历字符串,每次检查连续的 33 个字符是否构成一个有效单词。如果当前 33 个字符是 lqb 的任意排列,则将总数加 11,并跳过这 33 个字符避免重叠。 代码:

    #include<bits/stdc++.h>
    using namespace std;
    bool judge(char a,char b,char c){
    	return (a=='l'||a=='q'||a=='b')&&
    	(b=='l'||b=='q'||b=='b')&&
    	(c=='l'||c=='q'||c=='b')&&
    	(a!=b&&a!=c&&b!=c);
    }
    int main(){
    	string s;
    	cin>>s;
    	int cnt=0,l=s.size();
    	for(int i=0;i<l-2;){
    		if(judge(s[i],s[i+1],s[i+2]))
    			cnt++,i+=3;
    		else
    			i++;
    	}
    	cout<<cnt<<"\n";
    	return 0;
    }
    

    时间复杂度 O(n)O(n),空间复杂度 O(n)O(n)

    • 1

    信息

    ID
    12024
    时间
    5000ms
    内存
    512MiB
    难度
    2
    标签
    递交数
    0
    已通过
    0
    上传者