赞
踩
直接调用相关API
时间复杂度:O(n)。没有考虑API内部时间
空间复杂度:O(1)。没考虑API内部细节
public List<String> splitWordsBySeparator(List<String> words, char separator) {
List<String> res=new ArrayList<>();
for(String s :words){
res.addAll(Arrays.stream(s.split("\\"+separator))
.filter(c->!c.isEmpty())
.collect(Collectors.toList()));
}
return res;
}
模拟分割
时间复杂度:O(nm)。n是中的字符串数,m是最长字符串的长度
空间复杂度:O(m)。在分割函数中存储结果的list大小
public List<String> splitWordsBySeparator(List<String> words, char separator) { List<String> res=new ArrayList<>(); for(String s :words){ res.addAll(split(s,separator)); } return res; } public List<String> split(String s,char separator){ int n=s.length(); int left=0,right=0; List<String> res=new ArrayList<>(); while(right<n){ while(right<n&&s.charAt(right)!=separator){ right++; } String t=s.substring(left,right); if(!t.isEmpty()) res.add(t); left=right+1; right=left; } return res; }
有任何问题,欢迎评论区交流,欢迎评论区提供其它解题思路(代码),也可以点个赞支持一下作者哈
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。