zoukankan      html  css  js  c++  java
  • [Swift]LeetCode984. 不含 AAA 或 BBB 的字符串 | String Without AAA or BBB

    原文地址:https://www.cnblogs.com/strengthen/p/10326041.html 

    Given two integers A and B, return any string S such that:

    • S has length A + B and contains exactly A 'a' letters, and exactly B 'b' letters;
    • The substring 'aaa' does not occur in S;
    • The substring 'bbb' does not occur in S

    Example 1:

    Input: A = 1, B = 2
    Output: "abb"
    Explanation: "abb", "bab" and "bba" are all correct answers.
    

    Example 2:

    Input: A = 4, B = 1
    Output: "aabaa" 

    Note:

    1. 0 <= A <= 100
    2. 0 <= B <= 100
    3. It is guaranteed such an S exists for the given A and B.

    给定两个整数 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" 

    提示:

    1. 0 <= A <= 100
    2. 0 <= B <= 100
    3. 对于给定的 A 和 B,保证存在满足要求的 S

    12ms

     1 class Solution {
     2     func strWithout3a3b(_ A: Int, _ B: Int) -> String {
     3         var A = A
     4         var B = B
     5         var ret:[Character] = [Character](repeating:" ",count:A+B)
     6         for i in 0..<ret.count
     7         {
     8             if i >= 2 && ret[i-1] == ret[i-2]
     9             {
    10                 if ret[i-1] == "a"
    11                 {
    12                     ret[i] = "b"
    13                     B -= 1
    14                 }
    15                 else
    16                 {
    17                     ret[i] = "a"
    18                     A -= 1
    19                 }
    20             }
    21             else
    22             {
    23                 if A > B
    24                 {
    25                     ret[i] = "a"
    26                     A -= 1
    27                 }
    28                 else
    29                 {
    30                     ret[i] = "b"
    31                     B -= 1
    32                 }
    33             }            
    34         }
    35         return String(ret.reversed())
    36     }
    37 }
  • 相关阅读:
    java中的lamda表达式
    Arrays.sort()中Lambda表达式
    检索中的函数及不同范围的处理
    2014.6.24
    2014.6.23
    第六天培训
    第五天培训
    第四天培训
    第三天培训!
    第二天培训
  • 原文地址:https://www.cnblogs.com/strengthen/p/10326041.html
Copyright © 2011-2022 走看看