青海住房与建设厅网站,专门做品牌折扣的网站,茶艺馆网站,百度号码认证平台取消标记1. 题目
给定两个整数 A 和 B#xff0c;返回任意字符串 S#xff0c;要求满足#xff1a;
S 的长度为 A B#xff0c;且正好包含 A 个 ‘a’ 字母与 B 个 ‘b’ 字母#xff1b;子串 ‘aaa’ 没有出现在 S 中#xff1b;子串 ‘bbb’ 没有出现在 S 中。
示例 1…1. 题目
给定两个整数 A 和 B返回任意字符串 S要求满足
S 的长度为 A B且正好包含 A 个 ‘a’ 字母与 B 个 ‘b’ 字母子串 ‘aaa’ 没有出现在 S 中子串 ‘bbb’ 没有出现在 S 中。
示例 1
输入A 1, B 2
输出abb
解释abb, bab 和 bba 都是正确答案。示例 2
输入A 4, B 1
输出aabaa提示
0 A 100
0 B 100
对于给定的 A 和 B保证存在满足要求的 S。来源力扣LeetCode 链接https://leetcode-cn.com/problems/string-without-aaa-or-bbb 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。
2. 贪心
先用AB的较小的数 nminA,BnminA,BnminA,B生成 n 个 ab或者 ba, 谁多谁打头然后剩余的 a 或者 b 插空即可
class Solution {
public:string strWithout3a3b(int A, int B) {int n min(A,B), i 0;A - n;B - n;string ans;while(n--)if(AB)ans ab;elseans ba;if(A){while(A--){if(i ans.size())ans.push_back(a);elseans.insert(i,1,a);i 3;}}if(B){while(B--){if(i ans.size())ans.push_back(b);elseans.insert(i,1,b);i 3;}}return ans;}
};