文章
61
粉丝
137
获赞
18
访问
40.0k
#include<bits/stdc++.h>
using namespace std ;
/*
规则2的要求在算法上表现是排序具有稳定性
*/
int tfo(char a) ;
bool cmp(char a ,char b);
int main(){
char s [200] ;
char result [200] ;
gets(s); //输入有空格不能使用cin或者scanf
int slen = strlen(s) ;
char wd [slen] ; //存储字母用于字母的排序
int rcd [slen] = {0}; //用于记录非字母字符所在下标
int wdlen = 0 ;
//构建wd和rcd数组
for(int i = 0 ;i < slen ;i ++){
if('A' <= s[i] && s[i] <= 'z')
wd[wdlen++] = s[i] ; //记录字母字符
else rcd[i] = 1 ; //记录非字母字符所在下标
}
stable_sort(wd ,wd + wdlen ,cmp) ;
int flag = 0 ; //表示输出了几个字符
for(int i = 0 ;i < wdlen ;i++){
while(rcd [flag] == 1){
cout << s[flag] ;
flag++ ;
}
cout << wd[i] ;
flag++ ;
}
//将剩下的非字母字符输出
while(flag <= slen){
cout << s[flag] ;
flag ++ ;
}...
登录后发布评论
暂无评论,来抢沙发