网站开发 文件架构图,做设计图任务的网站,天津网站建设网站建设,有什么做动图比较方便的网站1. 题目
如果字符串中不含有任何 aaa#xff0c;bbb 或 ccc 这样的字符串作为子串#xff0c;那么该字符串就是一个「快乐字符串」。
给你三个整数 a#xff0c;b #xff0c;c#xff0c;请你返回 任意一个 满足下列全部条件的字符串 s#xff1a;
s 是一个尽可能长的…1. 题目
如果字符串中不含有任何 aaabbb 或 ccc 这样的字符串作为子串那么该字符串就是一个「快乐字符串」。
给你三个整数 ab c请你返回 任意一个 满足下列全部条件的字符串 s
s 是一个尽可能长的快乐字符串。s 中 最多 有a 个字母 ‘a’、b 个字母 ‘b’、c 个字母 ‘c’ 。s 中只含有 ‘a’、‘b’ 、‘c’ 三种字母。
如果不存在这样的字符串 s 请返回一个空字符串 “”。
示例 1
输入a 1, b 1, c 7
输出ccaccbcc
解释ccbccacc 也是一种正确答案。示例 2
输入a 2, b 2, c 1
输出aabbc示例 3
输入a 7, b 1, c 0
输出aabaa
解释这是该测试用例的唯一正确答案。提示
0 a, b, c 100
a b c 0来源力扣LeetCode 链接https://leetcode-cn.com/problems/longest-happy-string 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。
2. 解题
class Solution {
public:string longestDiverseString(int a, int b, int c) {vectorpairint,char v;v.push_back({a,a});v.push_back({b,b});v.push_back({c,c});string ans;int len, i;while(true){len ans.size();//记录长度一次下来没变化就退出sort(v.rbegin(), v.rend());//剩余多的放前面for(i 0; i v.size(); i){if(ans.empty() || (i0 ans.back() ! v[i].second)){ //空 或者 剩余最多的字符 跟 ans末尾不同尽量多放if(v[i].first 2){ //尽量放两个ans v[i].second;ans v[i].second;v[i].first - 2;break;}else if(v[i].first 1){ans v[i].second;v[i].first - 1;break;}}if(i ! 0 ans.back() ! v[i].second){ //如果 最多的剩余字符不能放那么次多的只放1个if(v[i].first 1){ans v[i].second;v[i].first - 1;break;}}}if(ans.size() len)break;//字符串没有变化退出}return ans;}
};0 ms 6.5 MB