2024.1.20力扣每日一题——按分隔符拆分字符串

2024.1.20

      • 题目来源
      • 我的题解
        • [方法一 API工程师(String.split+Stream)](#方法一 API工程师(String.split+Stream))
        • [方法二 模拟](#方法二 模拟)

题目来源

力扣每日一题;题序:2788

我的题解

方法一 API工程师(String.split+Stream)

直接调用相关API
时间复杂度 :O(n)。没有考虑API内部时间
空间复杂度:O(1)。没考虑API内部细节

java 复制代码
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大小

java 复制代码
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;
}

有任何问题,欢迎评论区交流,欢迎评论区提供其它解题思路(代码),也可以点个赞支持一下作者哈😄~

相关推荐
indexsunny几秒前
互联网大厂Java面试实录:Spring Boot到微服务的深入探讨
java·spring boot·微服务·面试·eureka·kafka·jwt
鸽鸽程序猿4 分钟前
【JavaEE】【SpringAI】Tool Calling(工具调用)
java·java-ee
于先生吖10 分钟前
高并发稳定运营,JAVA 动漫短剧小程序 + H5 源码
java·开发语言·小程序
云和数据.ChenGuang12 分钟前
鸿蒙应用对接DeepSeek大模型:构建智能问答系统的技术实践
java·华为·langchain·harmonyos·euler·openduler
曹牧13 分钟前
在 Eclipse 中变更 SVN 地址
java·svn·eclipse
中科三方14 分钟前
域名NS记录修改全攻略:规则、误区、实操流程和常见问题
java·后端·spring
墨白曦煜15 分钟前
告别 Thread.stop():并发编程的最高礼仪——两阶段终止模式
java
生信研究猿20 分钟前
leetcode 101.对称二叉树(不会做)
算法·leetcode·职场和发展
重生之我是Java开发战士21 分钟前
【笔试强训】Week1:点击消除,数组中两个字符串的最小距离,dd爱框框,腐烂的苹果,大数乘法
java·开发语言·算法
枫叶林FYL21 分钟前
【自然语言处理 NLP】前沿架构与多模态 选择性状态空间模型与并行扫描算法:从原理到实现
算法·自然语言处理·架构