牛客网 - 在线编程 - 华为机试 - 图片整理

题目描述

Lily上课时使用字母数字图片教小朋友们学习英语单词,每次都需要把这些图片按照大小(ASCII码值从小到大)排列收好。请大家给Lily帮忙,通过C语言解决。

输入描述:

Lily使用的图片包括"A"到"Z"、"a"到"z"、"0"到"9"。输入字母或数字个数不超过1024。

输出描述:

Lily的所有图片按照从小到大的顺序输出

示例1

输入

Ihave1nose2hands10fingers

输出

0112Iaadeeefghhinnnorsssv

C++:

用<algorithm>库自带的sort函数

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

string sort(string);
int main()
{
    string str;
    while(cin >> str)
    {
        sort(str.begin(),str.end());
        cout << str << endl;
    }    
    return 0;
}

自己写sort函数:

#include <iostream>
using namespace std;

void sort(string &a);
int main()
{
    string str;
    while(cin >> str)
    {
        sort(str);
        cout << str << endl;
    }    
    return 0;
}
void sort(string &a)
{
	int n = a.size();
	for (int i = 0; i < n; i++)
	{
		for (int j = i + 1; j < n; j++)
		{
			if (a[i] > a[j])
			{
				int tmp = a[i];
				a[i] = a[j];
				a[j] = tmp;
			}
		}
	}
	return;
}

注意函数引用!!!

Python:

def sort(a):
    if len(a) <= 1:
        return a
    else:
        left = []
        right = []
        p = []
        base = a[0]
        for i in a:
            if i < base:
                left.append(i)
            elif i > base:
                right.append(i)
            else:
                p.append(i)
        left = sort(left)
        right = sort(right)
        return left + p + right
while(1):
    try:
        print(''.join(sort(input())))
    except:
        break

python有自带的sort函数,我这里用了自己写的快排函数。注意要用循环,因为牛客网测试用例有多组,不写循环只能通过一组,会导致输出为空的问题。

猜你喜欢

转载自blog.csdn.net/qq_39735236/article/details/81565445