zoukankan      html  css  js  c++  java
  • 从一个字符串中剔除连续的字符,只留一个。

    有两种解决方法。

    第一种,从前往后遍历,如果后面的字符与当前的字符相同,就直接跳过,如果不相同,就停止。代码如下:

    private String doFilter(String text) {
            String newText = "";
            int i = 0;
            int j = i+1;
            newText += text.charAt(i);
            while(j < text.length()){
                if(text.charAt(i) == text.charAt(j)){
                    j++;
                }else {
                    i = j;
                    j=i+1;
                    newText += text.charAt(i);
                }
            }
            return newText;
        }

    第二种,是只比较当前字符与前一个字符是否相等,如果相等就删除前一个字符,不相等则直接向下遍历。代码如下:

        private String doFilter2(String text) {
            StringBuffer newText = new StringBuffer(text);
            for(int i=1;i<newText.length();i++){
                    if(newText.charAt(i) == newText.charAt(i-1)){
                        newText.deleteCharAt(i-1);
                        i--;
                    }
            }
            return newText.toString();
        }

    两种方法的时间复杂度与空间复杂度相同。

  • 相关阅读:
    前端之页面标签的图标修改
    分页, 解析器, 渲染器
    DRF的认证,频率,权限
    视图组件,路由组件,版本控制
    序列化组件
    Restful规范
    docker大全集
    哨兵和docker容器
    项目发布须知
    Linux之nginx
  • 原文地址:https://www.cnblogs.com/zhangmiao14/p/6379024.html
Copyright © 2011-2022 走看看