您好,登錄后才能下訂單哦!
在一個字符串中找到第一個只出現一次的字符。時間復雜度為o(N)
解決這道題的時候,簡單的方法考慮到用一個數組存儲每個字符的次數,這個時候考慮到字符是8比特,且在電腦里是以ASII值進行存儲的,存儲的最大值是256,那么我們就定義一個256大小的數組,每個字符作為數組的下標,每遇到相同的字符就將對應相同的下標值對應的數組++。代碼如下:
char fun(char arr[])
{
char *cur = arr;
int i = 0;
int a[256] = { 0 };
while (*arr)
{
a[*arr]++;
arr++;
}
while (*cur)
{
if (a[*cur] == 1)
return *cur;
cur++;
}
return 0;
}
int main()
{
char arr[] = "abcabcdefe";
char ret = fun(arr);
if (ret ==0)
{
printf("沒有");
}
else printf("%c", ret);
system("pause");
return 0;
}
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。