58同城,春招笔试题:求n个相同字串(O(n))

package com.tangbaobao.baidu;

import org.junit.Test;

/**
 * 58笔试题
 *
 * @author tangyaya8
 * @create 2018/04/02
 **/

public class FiveEight {
    @Test
    public void fun1() {
        String string = "aaaajjddddinfdfyyyy2222";
        int n = 4;
        this.isExitString(string, n);
    }

    /**
     * 是否有存在n个连续的字符串
     * 编程题1:输入一个字符串,输入整数n,找出长度为n的相同字符构成的子串。
     * @param string
     * @param n
     */
    public void isExitString(String string, int n) {
        //定义两个指针
        int start = 0;
        int end = 1;
        //记录字符串
        StringBuffer temp = new StringBuffer();

        char[] chars = string.toCharArray();
            temp.append(chars[start]);
        while (start < chars.length && end < chars.length) {
            if (chars[start] == chars[end]) {
                end++;
                temp.append(chars[start]);
                //处理最后的情况
                if(end == chars.length && temp.length() == n){
                    System.out.println("(" + start + "," + (end-1) + "," + temp + ")");
                }
            } else {
                if (temp.length() == n) {
                    System.out.println("(" + start + "," + (end-1) + "," + temp + ")");
                }
                start = end - 1;
                start++;
                end++;
                temp = new StringBuffer();
                temp.append(chars[start]);
            }
        }
    }
}

写的有点累赘,😂

#春招#
全部评论
就是leetcode上面一道叫count and say的题
点赞 回复 分享
发布于 2018-04-04 15:14
题目都不说清楚就上代码
点赞 回复 分享
发布于 2018-04-04 15:11

相关推荐

03-03 23:12
已编辑
北京邮电大学 Java
书海为家:我来给一点点小建议,因为毕竟还在学校不像工作几年的老鸟有丰富的项目经验,面试官在面试在校生的时候更关注咱们同学的做事逻辑和思路,所以最好在简历中描述下自己做过项目的完整过程,比如需求怎么来的,你对需求的解读,你想到的解决办法,遇到困难如何找人求助,最终项目做成了什么程度,你从中收获了哪些技能,你有什么感悟。
你的简历改到第几版了
点赞 评论 收藏
分享
03-10 11:23
门头沟学院 Java
鹿LF:计算机面试就跟数学题一样,没什么实际价值,但只能这么筛选,本质是考察你的努力,智力和学习能力
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务