返回介绍

solution / 1900-1999 / 1957.Delete Characters to Make Fancy String / README

发布于 2024-06-17 01:03:12 字数 3035 浏览 0 评论 0 收藏 0

1957. 删除字符使字符串变好

English Version

题目描述

一个字符串如果没有 三个连续 相同字符,那么它就是一个 好字符串 。

给你一个字符串 s ,请你从 s 删除 最少 的字符,使它变成一个 好字符串

请你返回删除后的字符串。题目数据保证答案总是 唯一的

 

示例 1:

输入:s = "leeetcode"
输出:"leetcode"
解释:
从第一组 'e' 里面删除一个 'e' ,得到 "leetcode" 。
没有连续三个相同字符,所以返回 "leetcode" 。

示例 2:

输入:s = "aaabaaaa"
输出:"aabaa"
解释:
从第一组 'a' 里面删除一个 'a' ,得到 "aabaaaa" 。
从第二组 'a' 里面删除两个 'a' ,得到 "aabaa" 。
没有连续三个相同字符,所以返回 "aabaa" 。

示例 3:

输入:s = "aab"
输出:"aab"
解释:没有连续三个相同字符,所以返回 "aab" 。

 

提示:

  • 1 <= s.length <= 105
  • s 只包含小写英文字母。

解法

方法一

class Solution:
  def makeFancyString(self, s: str) -> str:
    ans = []
    for c in s:
      if len(ans) > 1 and ans[-1] == ans[-2] == c:
        continue
      ans.append(c)
    return ''.join(ans)
class Solution {
  public String makeFancyString(String s) {
    StringBuilder ans = new StringBuilder();
    for (char c : s.toCharArray()) {
      int n = ans.length();
      if (n > 1 && ans.charAt(n - 1) == c && ans.charAt(n - 2) == c) {
        continue;
      }
      ans.append(c);
    }
    return ans.toString();
  }
}
class Solution {
public:
  string makeFancyString(string s) {
    string ans = "";
    for (char& c : s) {
      int n = ans.size();
      if (n > 1 && ans[n - 1] == c && ans[n - 2] == c) continue;
      ans.push_back(c);
    }
    return ans;
  }
};
func makeFancyString(s string) string {
  ans := []rune{}
  for _, c := range s {
    n := len(ans)
    if n > 1 && ans[n-1] == c && ans[n-2] == c {
      continue
    }
    ans = append(ans, c)
  }
  return string(ans)
}
class Solution {
  /**
   * @param String $s
   * @return String
   */
  function makeFancyString($s) {
    $rs = '';
    for ($i = 0; $i < strlen($s); $i++) {
      if ($s[$i] == $s[$i + 1] && $s[$i] == $s[$i + 2]) {
        continue;
      } else {
        $rs .= $s[$i];
      }
    }
    return $rs;
  }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文