极米(成都)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); }