8 solutions
-
2
#include<iostream> #include<string> using namespace std; int main() { string a; int k,n=0; cin>>k>>a;//输入 char s=a[0];//假设是第一个字符先(方便以后判断) for(int i=0;i<a.length();i++) { if(a[i]!=s)//如果是不同字符了 { if(n>=k)//是否过了这个长度 { cout<<s;//输出字符 return 0;//完结散花! } n=0;//重置 s=a[i];//重置字符 } n++;//连接字符 } cout<<"No";//都没有就No return 0;//完结散花! }
-
1
#include<bits/stdc++.h> using namespace std; char a;//应为输入的数据不用保存 int main() { //用string也行 int k; int n=1;//应为第一个已经输入了 cin>>k;//输入 cin >> a;//先输入一个 char s=a;//后面判断有用 while(cin >> a)//不知道要输入多少个 { if(a!=s)//与前面的字符不同 { if(n>=k)//如果达到了 { cout<<s;//输出字符 return 0;//应为后面不退出会输出No } n=0;//重置为0 s=a;//判断也重置 } n++;//一样就加 } cout<<"No";//都没有就No return 0;//不必多言 }
-
1
#include<bits/stdc++.h> using namespace std; string n; long k; long s[105]; int x=0; bool f=true; int main(){ scanf("%d\n",&k); getline(cin,n); long t=n.size(); for(int i=1;i<t;i++){ if(n[i]==n[i-1]){ s[(int)n[i]]++; if(s[(int)n[i]]==k-1){ cout<<n[i]; f=false; break; } }else s[(int)n[i]]=0; } if(f) cout<<"No"; return 0; }
递归秒了! 二分秒了! 勾股定理秒了! 韦达定理秒了!
-
-1
#include<bits/stdc++.h> using namespace std; int main(){ string s; int k,b=0; scanf("%d\n",&k); getline(cin,s); int siz=int(s.size())-1; for(int i=0;i<siz;i++){ for(int j=0;j<k;j++){ if(siz+1<k||siz-i<k-1){ cout<<"No"; b=1; break; } else{ if(s[i]!=s[i+j]){ break; } else if(j==k-1&&b!=1){ b=1; cout<<s[i]<<endl; break; } }
} if(b==1){ break; } } return 0;
}
- 1
Information
- ID
- 634
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 6
- Tags
- # Submissions
- 108
- Accepted
- 37
- Uploaded By