代码重构第一天: leetcode 14

190 阅读1分钟

之前一直都有代码重构的想法,但一直没有实践,今天在美团二面的时候,面试官跟我说了,代码不仅仅在正确性、时间复杂度和空间复杂度上要求好,一个好的代码必须要有简洁和可读性,于是开始进行代码重构。

public String longestCommonPrefix(String[] str) {
        StringBuilder ret = new StringBuilder();//定义输出结果
        if(str.length==0) return ret.toString();
        int index = 0, flag = 0;//定义我们的指针index和跳出循环的条件flag
        char c = ' ';//定义每次要比较的字符
        while (flag == 0) {
            if (index > 0) ret.append(c);//从第二次开始表示之前的可以添加入结果
            if (str[0].length() > index) c = str[0].charAt(index);//每轮c的赋值初始化
            for (int i = 0; i < str.length; i++) {//每轮进行比较本次是否完全相同
                if (str[i].length() <= index || str[i].charAt(index) != c) {
                    flag = 1;
                    break;
                }
            }
            index++;
        }
        return ret.toString();
    }

之后会陆续将之前写过的代码给重新重构一遍