leetcode-剑指50-OK

address

需要优化

// 时间复杂度n^2
char firstUniqChar(char* s){
	int getlen(char* s){
		int i = 0;
		while(s[i] != '\0'){
			i++;
		}
        return i;
	}
	int len = getlen(s);
	if(len == 0)
		return ' ';
	bool ok[len];
	for( int i = 0; i< len; i++)
		ok[i] = true;
	char nosame[len];
	int next = 0;
	int check( char s){
		for( int j = 0; j<next; j++){
			if(nosame[j] == s)
				return j;	// 有 就返回 下标
		}
		return -1;	// 没有返回-1
	}
	void fill( char s){
		nosame[next] = s;
		next++;
	}
	for( int i = 0; i< len; i++){
		if(check(s[i])>=0)
			ok[check(s[i])] = false;
		else
			fill(s[i]);
	}
	for( int i = 0; i< next; i++){
		if(ok[i] == true)
			return nosame[i];
	}
	return ' ';
}
posted @ 2021-01-22 19:53  RougeBW  阅读(30)  评论(0编辑  收藏  举报