数字列を抽出して数値でソートする(考え方)

1072 ワード

最近この方法Aで多くの検索问题を过ぎて、例えば:区间の出现回数が半分を超える数を探して、出现回数が奇数の数を探して、次のこの问题があって、使う思想は基本的に同じで、核心コードは1つのifにほかならない....else.....文.
しかし、この問題にはatoi関数が必要です.もし使えないなら、私のこのブログ「ISBNコード(atoiとitoaについて)」を参考にしてください.
コードは次のとおりです.
#include
#include
#include
#include
#include
#include 
using namespace std;
#define ll  long long
ll ans[10000000];
int main()
{
     string s;
     cin>>s;
     ll array[1000];char c[10000]={0};ll n,m;ll j=0;char *p;ll sum,num=0;
     m=s.size();s[m]='q';
     for(ll i=0;i='0'&&s[i]<='9')&&(s[i+1]>='0'&&s[i+1]<='9')) {c[j++]=s[i];}
         else  if((s[i]>='0'&&s[i]<='9')&&(s[i+1]'9')){c[j]=s[i];j++;p=c;ans[num++]=atoi(p);memset(c,0,sizeof(c));j=0;}
     }
     if(num==0)  {cout<<0;return 0;}
     sort(ans,ans+num);
     for(ll i=0;i