我想知道以下算法的复杂程度 1. Java String tokenizer 2.基于C ++ STL的标记化器 strtok。
是否有更快的算法,然后基本的strtok基于自定义分隔符标记字符串。
答案 0 :(得分:2)
关于Java,有3种主要的标记技术(String.split(),StringTokenizer和StreamTokenizer)。如果您引用java.util.StringTokenizer类(通过在给定字符串D中每次出现字符时断开输入字符串S来进行标记),则复杂度为O(| S | * | d |)。即,如果你只有一个分隔符字符,那么这将是线性的。
请注意,其他标记器的功能更强大。例如,String.split()可以拆分与给定正则表达式匹配的任何模式。