179 - 6
179. 最大数
自定义排序:通过比较两个字符串连接起来后的大小进行排序
// 12.04
// 12.25
class Solution {
static bool compare(int t1, int t2) {
string a = to_string(t1);
string b = to_string(t2);
return a + b > b + a;
}
public:
string largestNumber(vector<int>& nums) {
sort(nums.begin(), nums.end(), compare);
string res;
for(auto x : nums) {
//cout << x << ' ';
if(res == "0") res = "";
res = res + to_string(x);
}
//cout << endl;
return res;
}
};
6. Z 字形变换
这里可以把二维数组简化位一维数组
// 12.33
// 12.49
// 可以优化成只用一维数组
class Solution {
public:
string convert(string s, int numRows) {
if(s.empty() || numRows == 1) return s;
vector<vector<string>> tmp(numRows, vector<string>(1, ""));
int k = 0, flag = 0;
for(auto x : s) {
if(!flag) {
tmp[k++][0].push_back(x);
if(k == numRows) {
k -= 2;
flag = 1;
}
} else {
tmp[k--][0].push_back(x);
if(k < 0) {
k += 2;
flag = 0;
}
}
}
string ans;
for(auto x : tmp) {
//cout << x[0] << endl;
ans = ans + x[0];
}
return ans;
}
};