原题就是找出字符串中第一个不重复的字符。
如,输入abaccdeff
返回的应该是b
#include <iostream>
#include <string>
using namespace std;
char* first_once_letter(char* input)
{
char* p1 = input;
char* p2 = input;
const int hash_size = 255;
int hash[hash_size] ={0};
while(*p1 != '\0')
{
hash[*p1]++; //a b a c c d e f f
// p1
if(hash[*p1] != 1) // p2
p2++;
p1++;
}
return p2;
}
int main(void)
{
char* s = "abaccdeff";
char* k = first_once_letter(s);
cout << *k << endl;
return 0;
}
这段代码先放着,是错误的,但是思路可能会更好一点,相比遍历两次的那一个,但是空间复杂度差一些。
本文探讨了如何在给定字符串中找到第一个不重复的字符,并通过提供的代码示例展示了实现这一目标的方法。
972

被折叠的 条评论
为什么被折叠?



