Android 面试专辑Android面试问题专题分享review

Java小白必须会的一道面试算法题

2017-11-11  本文已影响376人  cmazxiaoma

前言

今天在群里面看消息,突然看到一个哥们发了一个关于算法的题目。我乍一看,感觉挺简单的。群里面有的哥们说用map去做,然后我自己尝试用map去写,发现掉到思维陷阱了,硬是出不来。感觉自己逻辑思考上还有欠缺,于是总结一波。

image.png

重要性

说实话,我基础不是特别好,做这道题还是有点吃力,主要是掉进思维陷阱了,虽然有些Java理论可以满嘴跑火车跑出来,但是真碰到稍微灵活的算法,估计就GG了。

image.png

解题思路

应该注意的问题


手写代码

public class Demo {

    public static void main(String[] args) {
        encode("aaabbcaa");
        encode("a");
        encode("abcabc");
        encode("ppppp");
        encode("");
        encode(null);
    }

    public static void encode(String str) {
        if (str == null || str.equals("")) {
            System.out.println("");
            return;
        }

        StringBuffer sb = new StringBuffer();
        int count = 1;
        char element = str.charAt(0);

        for (int i = 1; i < str.length(); i++) {
            if (str.charAt(i) == element) {
                count++;
            } else {
                sb.append(element);
                sb.append(count == 1 ? "" : count);
                element = str.charAt(i);
                count = 1;
            }
        }

        sb.append(element);
        sb.append(count == 1 ? "" : count);

        System.out.println(sb.toString());
    }
}

image.png

尾言

自己还是太菜了。Java小白,还需努力。

上一篇 下一篇

猜你喜欢

热点阅读