while True: try: s=input() n=int(input()) res=0 index=0 for i in range(0,len(s)-n+1): GC_Ratio=s.count('G',i,i+n)+s.count('C',i,i+n) if GC_Ratio>res: res=GC_Ratio index=i print(s[index:index+n]) except: break
#为什么只通过20%,问题在哪? while True: try: s=input() n=int(input()) res=0 index=0 for i in range(0,len(s)-n+1): temp=[] for j in range(i,i+n): temp.append(s[j]) GC_Ratio=temp.count('G')+temp.count('C') if GC_Ratio>res: res=GC_Ratio index=i print(s[index:index+n])#问题在这...太粗心了,之前写成print(s[index:n])了 except: break
#include <iostream> #include <string> using namespace std; int main(){ string s; int n; while(cin >> s >> n){ int res=0,index=0; for(int i=0;i<=s.size()-n;i++){ int GC_Ratio=0; for(int j=i;j<i+n;j++){ if(s[j]=='G' || s[j]=='C') GC_Ratio++; } if(GC_Ratio>res){ res=GC_Ratio; index=i; } } cout << s.substr(index,n) << endl;//substr()函数第二个参数指的是子串的长度 } return 0; }