2016年华为秋招机试题——2.字符串排序(200分)

来源:互联网 发布:辽宁省农产品出口数据 编辑:程序博客网 时间:2024/06/02 14:32

字符串排序
描述:输入一个字符串,对英文字母按照ASCII码排序,非英文字母保留原有的位置。输入字符串的长度不超过100.
运行时间限制:无限制
内存限制:无限制
输入:字符串
输出:排序后的字符串
样例输入:Wor#d
样例输出:Wdo#r
答案:

//冒泡法排序#include <iostream>#include <string>using namespace std;int main(){    string str;    getline(cin, str);    int i, j;    int len = str.length();    for (i = 0; i < len - 1; i++)    {        for (j = 0; j < len - i - 1; j++)        {            //每趟找到第一个字母,然后找到该字母后的第一个字母            //对这两个字母比较大小,若为逆序则交换它们            if (isalpha(str[j]))            {                int k = j + 1;                while (!isalpha(str[k]) && k < len - i - 1)                    ++k;                if (isalpha(str[k]))                {                    if (str[j] > str[k])                    {                        char temp = str[j];                        str[j] = str[k];                        str[k] = temp;                    }                }            }        }    }    cout << str << endl;    return 0;}
0 0
原创粉丝点击