求问这题的思路,需要用trie吗?谢谢

Multi delimiters: separate a string with given delimiters
Example:

  • str=”abcdefg”, dels=[“bc”, “f”] => [“a”, “de”, “g”]

  • str=”abcdefg”, dels=[“bc”, “f”, “b”] => [“a”, “de”, “g”]

什么公司?

Trie是针对 [“bc”, “b”] 的情况吧,感觉可以的

可以用替换法把del的字符替换成‘*’ 然后再split转换后的字符

1 Like

怎么替换呢?str里每个字母都要对应找一遍吗?谢谢

可以循环把[“bc”, “f”,“b”]在str里面找出来吧,

for(String delimiter: delimiters){
    while(str.indexOf(delimiter, start pos) != -1) {set delimiter position as *} 
}

然后把str里面包含delimiter的地方换成*,最后扫一遍str,把结果存入list并return。
不过要是不让用indexOf,那找起来还是挺麻烦的

明白了!非常感谢~

这个题要想o(n)做需要用AC自动机
我觉得n平方就好了