解题思路:本题时间要求不那么严格,双重循环也能过
注意事项:
参考代码:
#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.4 (C语言代码)浏览:541 |
printf基础练习2 (C语言代码)浏览:547 |
C语言程序设计教程(第三版)课后习题11.5 (C语言代码)浏览:1496 |
C语言程序设计教程(第三版)课后习题12.3 (C语言代码)浏览:587 |
排序算法(选择,插入,冒泡)浏览:876 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:395 |
C语言训练-自守数问题 (C语言代码)浏览:702 |
A+B for Input-Output Practice (IV) (C语言代码)浏览:690 |
蛇行矩阵 (Java代码)浏览:693 |
【出圈】 (C语言代码)浏览:1025 |