分割排序
程序员文章站
2022-05-10 19:58:08
...
注意:1. 前导零直接跳过,不执行语句;
2. 字符转化为整形
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
int i,j,k,len;
char s[1010];
long long p[1010];
while(cin>>s){
memset(p,0,sizeof(p));
len=strlen(s);
i=j=k=0;
for(i;i<len;i++){
if(s[i]!='5'){
k=k*10+s[i]-'0'; //将每个‘5’前的字符串化为整形
}
if((s[i]!='5')&&(s[i+1]=='5'||i==len-1)){ //想想这里!!
p[j++]=k;
k=0; //每次执行完此步均需把k重置
}
}
sort(p,p+j); //利用快排,防止超时(虽然没试过其他排序)
for(i=0;i<j;i++)
cout<<p[i]<<(i<j-1?' ':'\n');
}
return 0;
}
上一篇: Homebrew国内地址安装解决下载慢,报错问题。
下一篇: 使用appium遇到的问题