简介
贪心算法
思路
填2个数量最多的字母,如果下一次该字母数量还是最多的,填1个数量次多的字母
code
class Solution1405 {
public:
string longestDiverseString(int a, int b, int c) {
vector<pair<int, char>> v;
v.push_back(make_pair(a, 'a'));
v.push_back(make_pair(b, 'b'));
v.push_back(make_pair(c, 'c'));
string ans;
while(v[0].first || v[1].first || v[2].first) {
sort(v.rbegin(), v.rend());
if(ans.empty() || ans.back()!=v[0].second) {
if(v[0].first-- > 0) ans = ans + v[0].second;
if(v[0].first-- > 0) ans = ans + v[0].second;
}
else{
if(v[1].first-- > 0) ans = ans + v[1].second;
else break;
}
}
return ans;
}
};
---------------------------我的天空里没有太阳,总是黑夜,但并不暗,因为有东西代替了太阳。虽然没有太阳那么明亮,但对我来说已经足够。凭借着这份光,我便能把黑夜当成白天。我从来就没有太阳,所以不怕失去。
--------《白夜行》