首页 > 其他分享 >删除字符使字符串变好

删除字符使字符串变好

时间:2023-08-11 09:56:06浏览次数:39  
标签:字符 aabaa 删除 示例 字符串 sb

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

给你一个字符串 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" 。

效率还是太低,屎山代码

class Solution {
    public String makeFancyString(String s) {
        //单次遍历,依次添加到StringBuilder,遇到三次字母相同则不添加
        StringBuilder sb = new StringBuilder();
        for(int i=0;i<s.length();i++){
            char a = s.charAt(i);
            int len = sb.length();
            if(sb.length()>=2&&sb.charAt(len-2)==a&&sb.charAt(len-1)==a){
                continue;
            }
            sb.append(a);
        }
        return sb.toString();
    }
}

标签:字符,aabaa,删除,示例,字符串,sb
From: https://www.cnblogs.com/xiaochaofang/p/17622263.html

相关文章

  • 《剑指Offer》-48-最长不含重复字符串的子字符串
    这题以前做过,和力扣-3重复 intlengthOfLongestSubstring(strings){ //本来应该是用map,但是其实可以使用数组替代,下标对应了字母 unordered_map<char,int>map; intlen=s.size(),maxLen=0;//初始化为0是因为可能字符串长度为0 vector<int>dp(len+1,0);//多......
  • 【JavaScript36】HTML DOM创建/插入/删除/替换元素
    createElement创建元素document.createElement()可以创建一个元素document.createTextNode()创建一个文本节点appendChild()方法可向节点的子节点列表的末尾添加新的子节点。<divid="demo"><pid="p1">这是文本内容</p></div><script>//div下添加一个子元......
  • java_转义字符
    转义符解释\t制表位\n换行\\一个\\"一个"\'一个'\r光标回到本行的行首packagebicly;publicclassBicycleDemo{publicstaticvoidmain(String[]args){System.out.print("AAA\tBBB\nCCC\\DDD\"EEE\n......
  • 在Java中操作Redis_Spring Data Redis使用方式_操作字符串类型的数据
        ......
  • 在线代码工具:根据十六进制字符串解析对应的字段值
    说明hexString是字节序是小端的(读值得时候会转为大端来读取值)valueByteSizes是个根据要求顺序读取值得字节大小的数组。例如:newbyte[]{4,2,1},程序会顺序读取hexString字符串:第一个值取4个字节并读取其值,第2个值取2个字节,第3个值取1个字节,4.(如果存在)第4个值取1个字节。......
  • 判断是不是子字符串
    1.题目链接:https://www.nowcoder.com/questionTerminal/5382ff24fbf34a858b15f93e2bd85307给定两个字符串s和t,判断s是否为t的子序列。你可以认为s和t中仅包含英文小写字母。字符串t可能会很长(长度n~=500,000),而s是个短字符串(长度<=100)。字符串的一个子序列是......
  • 字符串分割
    1.题目给定一个非空字符串S,其被N个‘-’分隔成N+1的子串,给定正整数K,要求除第一个子串外,其余的子串每K个字符组成新的子串,并用‘-’分隔。对于新组成的每一个子串,如果它含有的小写字母比大写字母多,则将这个子串的所有大写字母转换为小写字母;反之,如果它含有的大写字母比小写字母......
  • docker 删除已停止的容器
    docker删除已停止的容器根据容器的状态,删除Exited状态的容器#根据容器的状态,删除Exited状态的容器sudodockerrm$(sudodockerps-qfstatus=exited)删除所有未运行的容器(已经运行的删除不了,未运行的就一起被删除了)sudodockerrm$(sudodockerps-a-q)查询所有......
  • Go语言中字符串处理
    Go语言为字符串处理提供了丰富的功能。以下是处理字符串的一些常见方法和函数:基本操作:获取字符串长度:len(str)字符串连接:str1+str2访问特定字符(字节):str[index]字符串包(strings包):检查字符串是否包含子串:strings.Contains(str,substr)字符串比较:strings.Com......
  • 字符设备驱动-11.mmap机制-实例分析
    1mmap驱动要做的事情确定物理地址确定属性:是否使用cache、buffer建立映射关系参考Linux驱动源文件代码:我们要验证mmap功能,在驱动程序中申请一个8K的buffer,让APP通过mmap能直接访问。2mmap驱动代码示例分析linux内核中常用的内存申请方式:函数名说明......