自学内容网 自学内容网

力扣1405.最长快乐字符串

力扣1405.最长快乐字符串

  • 三个比较

    • chlen记录最多剩余字母的数量
    • xsize记录当前字符串
  •   class Solution {
      public:
          string longestDiverseString(int a, int b, int c) {
              string res;
              while(a + b + c > 0)
              {
                  char choose = '-';
                  int chlen = 0;
                  int xsize = res.size();
                  //a的数量更多 并且可以放
                  if(a > chlen && (xsize < 2 || res[xsize - 1] != 'a' || res[xsize - 2] != 'a'))
                  {
                      chlen = a;
                      choose = 'a';
                  }
                  //b的数量更多 并且可以放
                  if(b > chlen && (xsize < 2 || res[xsize - 1] != 'b' || res[xsize - 2] != 'b'))
                  {
                      chlen = b;
                      choose = 'b';
                  }
                  //c的数量更多 并且可以放
                  if(c > chlen && (xsize < 2 || res[xsize - 1] != 'c' || res[xsize - 2] != 'c'))
                  {
                      chlen = c;
                      choose = 'c';
                  }
                  if(choose == '-') break;
                  res.append(1,choose);
                  if(choose == 'a') a--;
                  else if(choose == 'b') b--;
                  else if(choose == 'c') c--;
              }
              return res;
          }
      };
    

原文地址:https://blog.csdn.net/Pisasama/article/details/140686696

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!