首页 > 解决方案 > 我对这个算法的时间复杂度的解释正确吗?

问题描述

下面的算法返回字符串 s 的游程编码。[来自这里的问题]。

string solve(string s) {
string answer;
int n = s.size();
int j = 0;
int count = 0;
for (int i = 0; i < n;) {
    char character = s[i];
    while (j < n && s[j] == character) {
        j++;
    }
    answer.append(to_string(j - i));
    answer.append(1, character);
    i = j;
}
return answer;

我相信这个算法的时间复杂度是 O(N),因为在 for 循环的每次迭代中,j 至少增加 1,并且 i 设置为修改后的 j。这导致上面的算法简单地遍历字符串。我对算法的解释正确吗?
谢谢你。

标签: algorithmtime-complexity

解决方案


推荐阅读