笔试遇到的题目---字符串排序

条件:输入一串字符,包含数字[0-9]和小写字母[a-z],要求按数字从小到大

输入:az12sx

输出:azsx12

建议使用冒泡排序,通过两个for循环,进行排序输出。N个数字要排序完成,总共进行N-1趟排序,每i趟的排序次数为(N-i)次,所以可以用双重循环语句,外层控制循环多少趟,内层控制每一趟的循环次数

#include<iostream>
#include<string>
using namespace std;

int main()
{
    string str;
    cin>>string;
    for(int i;i!=str.size();i++)
{
    for(int j;j!=str.size()-(i+1);j++)
{
    if((str[j]<='9'&&str[j+1]>='a')||
        (str[j]>str[j+1]&&str[j]<='9')||
            (str[j]>str[j+1]&&str[j+1]>='a'))
{
        swap(str[j],str[j+1]);
}
}
        cout<<str<<"\n";
}

猜你喜欢

转载自www.cnblogs.com/PD-yin996649850/p/12468341.html
今日推荐