uva1584 环状序列,我的方法是字母转数字,大佬帮看看哪里出问题了?

#include<iostream>
#include<string.h>
#include<math.h>
using namespace std;
int main()
{
    int T;
    cin>>T;
    while(T--)
    {
        char a[100],b[200],d[200];
        int c[100]={0};
        cin>>a;
        int len=strlen(a);
        memcpy(b,a,sizeof(char)*len);
        for(int n=0; n<len; n++)
            b[len+n]=b[n];//将数组扩大一倍
        memcpy(d,b,sizeof(char)*len*2);
        for(int x=0; x<2*len; x++)
            switch(b[x])
            {
            case 'A':
                b[x]='1';
                break;
            case 'C':
                b[x]='2';
                break;
            case 'G':
                b[x]='3';
                break;
            case 'T':
                b[x]='4';
                break;
            }
        for(int i=0; i<len; i++)
            for(int j=i; j<i+len; j++)
                c[i]+=c[i]*10+b[j]-'0';
        int count=0,temp=0;
        for(int fhyu=0; fhyu<len; fhyu++)
            for(int lap=0; lap<len; lap++)
            {
                if(c[fhyu]<=c[lap])
                    count++;
                if(count==len)
                    temp=fhyu;
            }
        for(int bat=temp; bat<temp+len; bat++)
            cout<<d[bat];
        cout<<endl;
    }
    return 0;
}
 

查看全部
qq_49705193
qq_49705193
2020/11/27 09:06
  • c++
  • 点赞
  • 收藏
  • 回答
    私信

1个回复