zoukankan      html  css  js  c++  java
  • 招银三面手撕代码题(字符串连续子串)

    import java.util.*;
    
    /*编写函数,找出字符串中连续出现的字符
    * 返回连续字符子串的数组
    * 若无连续字符子串,返回空数组*/
    
    public class continuationsubstring {
    
            public static void main(String[] args) {
                LinkedList<String> list = new LinkedList();
                List<String> res = getRes("dad", list);
                System.out.println(res);
            }
    
            public static List<String> getRes(String str, List list) {
                int count = 1;//count用来对重复元素个数计数,每次元素值改变之后都是1
                char ch = str.charAt(0);
                for (int i = 0; i < str.length(); i++) {
                    //判断如果当前索引处的值和ch相同就count++
                    while (++i < str.length() && str.charAt(i) == ch) {
                        count++;
                    }
                    //默认每个元素都会出现一次,如果大于1代表出现了两次,放到list中
                    if (count > 1) {
                        StringBuilder builder = new StringBuilder();
                        for (int j = 0; j < count; j++) {
                            builder.append(ch);
                        }
                        list.add(builder.toString());
                    }
                    //此时已经退出while循环,代表这个元素已经和之前的不同了
                    // 每次在本次循环之后维护ch和i和count的值
                    if (i < str.length()) {
                        ch = str.charAt(i);
                        count = 1;//默认count都应该是1,因为每个新元素 都出现了1次
                        i--;//上边while循环的时候是++i,此时再减回来
                    }
                }
                return list;
            }
        }
    
  • 相关阅读:
    [svc]linux启动过程及级别
    [svc]linux紧急情况处理
    [100]shell中exec解析
    [100]第一波命令及总结
    [100]find&xargs命令
    [svc]nginx优化
    hbase总结:如何监控region的性能
    hbase集群 常用维护命令
    navicat 导入sql文件乱码问题解决
    ue标签不见了,如何解决?
  • 原文地址:https://www.cnblogs.com/yzhengy/p/13320709.html
Copyright © 2011-2022 走看看