我目前正在解决 Leetcode 的一题关于字符串的问题。我需要检查我的所有字符串文字是否都是字母。
我附有以下代码:
for (int i = 0; i < s.length(); i++) {
char character = s.charAt(i);
if (!Character.isLetter(character))
return s;
lastIndex[character - 'a'] = i;
}
检查字符串是否包含所有字母的时间复杂度是多少?
我认为这是 O(n),因为将对字符串中的所有字符进行检查。
谢谢。
从您提供的代码段来看,时间复杂度确实是 O(n),因为您仅使用 for 循环迭代长度为 n 的字符串一次。
另外,回答一下标题,
Character.isLetter ()
的时间复杂度是O(1),因为它在常数时间内使用unicode范围比较来确定布尔返回值。