1

isalnum(char) 是一种告诉我们给定字符是否为字母数字的方法。这个小函数的时间复杂度是多少?

我写了一个小子程序:

bool check(string s,int i)
     {
        if((s[i]>='a' && s[i]<='z') ||
           (s[i]>='0' && s[i]<='9') ||
          (s[i]>='A' && s[i]<='Z'))
        {
            return true;
        }     
        return false;
    }

上述子程序是否与 isalnum(char) 方法相同?时间复杂度是否相同?

4

1 回答 1

4

这些功能是不同的,因为isalnum需要int. 如果您询问他们执行的操作,它们也有所不同。

isalnum('\xdf'), default C locale, returns false
isalnum('\xdf'), ISO-8859-1 locale, returns true
check("\xdf", 0) always returns false.

两种情况下的时间复杂度相似,O(1)。您的函数可能会更快,因为它不使用语言环境。

于 2022-01-27T06:06:41.950 回答