以下逻辑题,用Java编程语言,并尽量考虑时间和空间优化
1、实现以下2个接口不能使用语言的基本分割组合函数(如Java的String.split,php的explode和implode)
(1)字符串拆分成数组,如“ab&&2”通过”&&“做分隔符,分割得到字符串数组[“b”,“2”]
public static List<String> splitString(String s, String delim) {
List<String> res = new ArrayList<>();
int start = 0;
for (int i = 0; i < s.length(); i++) {
if (i + delim.length() <= s.length() && s.substring(i, i + delim.length()).equals(delim)) {
res.add(s.substring(start, i));
start = i + delim.length();
}
}
res.add(s.substring(start));
return res;
}
示例
System.out.println(splitString("ab&&2", "&&")); // ["ab", "2"]
System.out.println(splitString("hello world", " ")); // ["hello", "world"]
System.out.println(splitString("hello||world||java", "||")); // ["hello", "world", "java"]
System.out.println(splitString("abcde", "||")); // ["abcde"]