问题描述:
给定一个字符串str,判断在字符串str中是否存在重复字符串。
问题分析:
因为字符的总数是一定的,所以可以借助额外空间,通过一次遍历进行判断。空间复杂度是O(1), 示例代码:
bool is_repating_character(char a[], int n)
{
int index[128] = { -1 };
for(int i = 0; i < n; i++)
{
if (index[a[i]] > 0)
{ return false;}
index[a[i]] = i;
}
return true;
}
如果不借助 额外的空间可以在O(n*n)的时间复杂度内完成。示例代码:
bool RepeatedChar(char a[], int n)
{
for (int i = 0; i < n - 1; i++)
for (int j = i + 1; j < n; j++)
{ if (a[i] == a[j]) return true;}
return false;
}