zoukankan      html  css  js  c++  java
  • 去掉字符串末尾连续出现k个0的子串

    题目:去掉字符串末尾连续出现k个0的子串

    要求:

    str=“A00B”,返回“A00B”;

    str=“A00B00”,返回“A00B”;

    思路:这个题同样是用到上一篇中字符串中找数字求和的思想,找'0'就需要在不是'0'的时候去拼接字符串
    这个题用了StringBuffer来简化求解过程,不用计算chars的start(连续'0'的起始位置)和k(多少个'0')
    public String remove(String str) {
            if (str == null) return str;
            //这里使用两个StringBuffer,一个记录结果res,一个用来记录sb...
            StringBuffer res = new StringBuffer();
            StringBuffer sb = new StringBuffer();
            char[] chars = str.toCharArray();
            for (int i = 0; i < chars.length; i++) {
                if (chars[i] != '0') {
                    //遇到了不是'0'的情况,在这里去拼接res
                    sb.append(chars[i]);
                    res.append(sb);
                    sb.replace(0, sb.length()-1,"");
                } else {
                    sb.append(chars[i]);
                }
            }
            return res.toString();
        }
  • 相关阅读:
    Paths on a Grid
    Three Kingdoms(优先队列+bfs)
    Factstone Benchmark(数学)
    C. Searching for Graph(cf)
    B. Trees in a Row(cf)
    String Successor(模拟)
    乘积最大的分解(数学)
    Kindergarten Election
    In 7-bit
    Friends
  • 原文地址:https://www.cnblogs.com/zhaoqi3215/p/5303939.html
Copyright © 2011-2022 走看看