字符串中第一次出現的只出現一次的字符

題目:給一個字符串"abadfawefwfasf",找出第一個只出現一次的字符。



分析:自從看過計數排序之後,發現很多題目都是針對計數排序的擴展。字符只有256個,好處,就是我們能有一個固定的空間大小的一個數組來統計每個字符出現的次數,只需要n的時間,然後再從頭到尾遍歷一遍即可。


代碼:


void findFirstOne(char *str){
		if (str==NULL)
		{
			return;
		}

		int len = strlen(str);

		int temp[256];
		memset(temp,0,sizeof(temp));
		for (int i=0;i<len;i++)
		{
			temp[str[i]]= temp[str[i]]+1;
		}

		for (int i=0;i<len;i++)
		{
			if (temp[str[i]]==1)
			{
				cout<<str[i]<<endl;
				break;
			}
		}
	}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章