1023 组个最小数 (20 分)

275 阅读1分钟

题目代码

  1. 对给如的数全部都放到线性表中,然后对其进行从小到大的排序
  2. 讲这组数中第一个不为零的数和最前面的数交换(因为第一个数是最小的,很可能是0)。这样线性表的数就是结果了。

c++代码

#include <iostream>
#include<string>
#include<vector> 
#include<stack>
#include<map>
#include <algorithm>
using namespace std;

int main() {
	vector<int>res;
	int t;
	for (int i = 0; i < 10; i++) {
		cin >> t;
		for (int j = 0; j < t; j++) {
			res.push_back(i);
		}
	}
	sort(res.begin(), res.end());
	if (res[0] == 0) {
		for (int i = 1; i < res.size(); i++) {
			if (res[i] != 0) {
				swap(res[i], res[0]);
				break;
			}
		}
	}
	for (int i = 0; i < res.size(); i++)
		cout << res[i];
	return 0;
}

python3代码

def main():
    a = input().split()
    res = []
    for i in range(10):
        for j in range (int(a[i])):
           res.append(str(i))
    res.sort()
    for i in range(len(res)):
        if(res[i] != '0'):
            res[i],res[0] = res[0],res[i]
            break
    print(''.join(res))
main()