我本来正做着题,突然想发言,发现发不了言,似乎被禁言了??(心酸)
这一次我提拔一下气氛,出个脑筋急转弯:
实验室里放着酒精灯和放着一只蜡烛,动手操作时,请问应该先点燃什么?
下期题解我会公布答案,如果想到答案可以在评论区回答
现在讲一下思路
因为要求包含1,2,3的最小字串长度,先开一个大小为5(大于等于3即可)的数组来存这些数
代码“a[s[j]-'0']++;”是把下标为s[j]-0这个数字++
代码“a[1]&&a[2]&&a[3]”是内部循环条件,说明只要1,2,3都有大于等于1个就循环
代码“a[s[o]-'0']--;”是把最末尾的删除
每一次要用“c=min(c,j-o+1);”来求最小值,因为循环从0开始,所以要加一
每一次o++是从o到j的末尾o往前挨近
之前a[s[o]-'0']--帮我们清空末尾,如果还满足循环条件可以一直求到最小的并且满足条件的字串
代码文献来一个
#include<bits/stdc++.h>
using namespace std;
const int N=1e9;
int t,o;
string s;
int main(){
cin>>t;
for(int i=1;i<=t;i++){
cin>>s;
int a[5]={0};
o=0;
int c=N;
for( int j=0;j<=s.size();j++) {
a[s[j]-'0']++;
while(a[1]&&a[2]&&a[3]) {
a[s[o]-'0']--;
c=min(c,j-o+1);
o++;
}
}
if(c==N)
c=0;
cout<<c<<endl;
}
return 0;
}
认为有帮助点个赞,我会万分感谢的
感谢 Small-cai 的支持
感谢 一 曲 长 歌 行 的支持
换了一道,不搜百度,谁可以先答出来
火机?火柴?
这。。。。。。真坑,这么快
因为它没有带眼镜,看不清。
解释分析:该题为一题脑筋急转弯题目,题目中问“森林里有一条眼镜蛇,可是它从来不咬人,问为什么”,按照常规思路,眼镜蛇具备攻击性,是会咬人的,可是题目却说它从来不咬人,按照脑筋急转弯的反常规解题思路,还有题目中“眼镜蛇”这个关键词,就可以猜测因为眼镜蛇没带眼镜看不清人,所以不咬人。 —节选自《百度知道》
我搜的和你搜的可能不一样吧。。。。。。
因为森林里没有人
不知你是搜了一下还是看过,答案正确
当然搜的呀
有必要那么真挚吗?
哈哈
......
感谢 Tilbur 的支持
没带眼镜是不是 %%%
答案错误,再想一想吧