极米(成都)Android 笔经

9.26更新
目前为止面了轮技术面了轮hr(没错,这家先hr面后技术面)。感觉所有面试官的考察点就一个:你真的想来成都吗,真心的么

---------------------------------分割线---------------------------------

算法全是字符串题。。。我手撕部分字符串真的是最弱的点。。。

第一道类似于Lc151,翻转字符串里的单词,直接掉的现成api。看通过率全AC,要是看代码真是毫无技术含量哈哈哈哈

第二道 替换字符串里的空字符" "为"%20" 开始觉得贼简单 直接下手开写 结果写着写着整个人都蒙逼了 最后也思路及其不清晰的AC的 如果有大佬知道好思路拜托指点一下小弟
贴下我混乱的代码

public static String replaceSpace(String iniString, int length) {
        // write code here
        List<Integer> kongList = new ArrayList<>(); //空格位置
        for (int i = 0; i < length; i++) {
            if (iniString.charAt(i) == ' ')
                kongList.add(i);
        }
        int newLength = length + 2 * kongList.size();
        char[] chars = new char[newLength + 1];
        for (int j = 0; j < kongList.size(); j++) {
            chars[kongList.get(j) + 2 * j] = '%';
            chars[kongList.get(j) + 2 * j + 1] = '2';
            chars[kongList.get(j) + 2 * j + 2] = '0';
        }
        int i = 0, j = 0;
        StringBuffer stringBuffer = new StringBuffer();
        while (j < newLength) {
            if (chars[j] != '%' && chars[j] != '2' && chars[j] != '0') {
                while (iniString.charAt(i) == ' ')
                    i++;
                chars[j++] = iniString.charAt(i++);
                stringBuffer.append(chars[j-1]);
            }else {
                j++;
                stringBuffer.append(chars[j-1]);
            }
        }
        return new String(stringBuffer);
    }





#2021届秋招进度交流##笔经##极米科技#
全部评论
第二题这样应该简洁一点 class Solution { public String replaceSpace(String s) { StringBuilder res = new StringBuilder(); for(Character c : s.toCharArray()) { if(c == ' ') res.append("%20"); else res.append(c); } return res.toString(); } }
2 回复 分享
发布于 2021-09-05 11:53
替换那道题 为了避免多次移动 可以双指针交换这么做 剑指offer有
点赞 回复 分享
发布于 2021-09-05 12:15
有面经吗
点赞 回复 分享
发布于 2021-10-29 11:19
笔试在什么时候进行的?第二轮嘛?还是第一轮面试前
点赞 回复 分享
发布于 2021-11-01 10:16
lz 你这是还有手撕啊
点赞 回复 分享
发布于 2021-11-13 13:46

相关推荐

点赞 评论 收藏
分享
点赞 1 评论
分享
牛客网
牛客企业服务