解题思路:本题时间要求不那么严格,双重循环也能过
注意事项:
参考代码:
#include<iostream> #include<cmath> using namespace std; typedef long long ll; int sum=0; void way(string s,int k,int x){//k,x值一样时向内查看是否满足条件 //例如: 1231当k==0,x==3时去查看k==1,x==2的情况 k++; x--; if(k>=x) return;//长度为奇数(13231)时 k==x为临界,偶数时k>x为临界 if(s[k]>s[x]) { sum++; } else if(s[k]<s[x]) return;//不满足条件 else way(s,k,x); //依旧相等,继续向内查看 } int main() { string s; cin>>s; for(int k=0;k<s.length();k++){ for(int x=k;x<s.length();x++){ if(s[k]>s[x]) { sum++; } else if(s[k]==s[x]&&(x-k)>1){ way(s,k,x); } } } cout<<sum; return 0; }
0.0分
5 人评分
C语言程序设计教程(第三版)课后习题8.7 (C语言代码)浏览:909 |
C语言程序设计教程(第三版)课后习题7.2 (C语言代码)浏览:619 |
C语言训练-大、小写问题 (C语言代码)浏览:614 |
wu-理财计划 (C++代码)浏览:835 |
C语言程序设计教程(第三版)课后习题10.2 (C语言代码)浏览:510 |
C语言程序设计教程(第三版)课后习题6.5 (C语言代码)浏览:595 |
三角形 (C语言代码)浏览:914 |
C语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:545 |
1908题解浏览:640 |
1113题解浏览:789 |