题解 | #把数组排成最小的数#

把数组排成最小的数

http://www.nowcoder.com/practice/8fecd3f8ba334add803bf2a06af1b993

class Solution {
public:
	//将数字转成字符串
	string itos(int n) {
		if (n == 0)return"0";
		string s;
		while (n) {
			s += '0' + n % 10;
			n /= 10;
		}
        reverse(s.begin(),s.end());
		return s;
	}
	bool operator()(string s1, string s2) {

		int minlen = min(s1.size(), s2.size());
		int maxlen = max(s1.size(), s2.size());
		for (int i = 0; i < maxlen; i++) {
			if (s1[i%s1.size()] != s2[i%s2.size()])
				return s1[i%s1.size()] < s2[i%s2.size()];
		}
		return s1.size() < s2.size();

	}
	string PrintMinNumber(vector<int> numbers) {
		vector<string>v;
		for (int num : numbers)v.push_back(itos(num));
		sort(v.begin(), v.end(), Solution());
		string res;
		for (string str : v)res += str;
		return res;
	}
};

全部评论

相关推荐

04-02 16:49
门头沟学院 Java
_bloodstream_:我也面了科大讯飞,主管面的时候听说急招人优先考虑能尽快实习的,我说忙毕设,后面就一直没消息了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务