题目:
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。 示例 1: 输入:s = "We are happy." 输出:"We%20are%20happy." 限制: 0 <= s 的长度 <= 10000 class Solution { public String replaceSpace(String s) { } }方法一:利用Strng自带的函数replaceAll
public static String replaceSpace(String s) { if (s == null || s.length() <= 0) return s; String string = s.replaceAll(" ", "%20"); return string; } 执行用时:4 ms, 在所有 Java 提交中击败了5.29%的用户内存消耗:36.4 MB, 在所有 Java提交中击败了89.81%的用户方法二:
public static String replaceSpace(String s){ if (s == null || s.length() <= 0) return s; StringBuilder string = new StringBuilder(); for (int i = 0; i < s.length(); i++){ char c = s.charAt(i); if (c == ' '){ string.append("%20"); } else { string.append(c); } } return string.toString(); } 执行用时:0 ms, 在所有 Java 提交中击败了100.00%的用户内存消耗:36 MB, 在所有 Java提交中击败了99.00%的用户方法三:
public static String replaceSpace(String s){ if (s == null || s.length() <= 0) return s; char[] newChars = new char[s.length()*3]; int num = 0, newNum = 0; while (num < s.length()){ char c = s.charAt(num); if (c == ' '){ newChars[newNum++] = '%'; newChars[newNum++] = '2'; newChars[newNum++] = '0'; }else { newChars[newNum++] = c; } num++; } String result = new String(newChars, 0, newNum); return result; } 执行用时:0 ms, 在所有 Java 提交中击败了100.00%的用户内存消耗:36.4 MB, 在所有 Java提交中击败了91.36%的用户