我希望它具有恒定的时间复杂度,但这个名字暗示它实际上是在计算 token 。
最佳答案
这是实现,如果你很好奇:
public int countTokens() {
int count = 0;
int currpos = currentPosition;
while (currpos < maxPosition) {
currpos = skipDelimiters(currpos);
if (currpos >= maxPosition)
break;
currpos = scanToken(currpos);
count++;
}
return count;
}
我对
StringTokenizer
不太熟悉,但假设 maxPosition
可以改变(它看起来可以),那么它不是恒定时间。您还必须考虑 skipDelimiters
和 scanToken
的复杂性。关于java - Java StringTokenizer.countTokens() 的时间复杂度是多少,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52636880/