题解 | 第一个只出现一次的字符

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param str string字符串 
 * @return int整型
 */
int FirstNotRepeatingChar(char* str ) {
    // write code here
	int a = 0;
	int i = 0;
	char* pst = str;
	while (*pst)
	{
		pst++;
		a++;
	}
	pst = str;
	int count = 0;
	for (int m = 0; m < a; m++)
	{
		for (i = 0; i < a; i++)
		{
			if (*pst == *(str + i) && count != i)
				break;
		}
		if (i == a)
		{
			return count;
		}
		pst++;
		count++;
	}
	return -1;
}
思路是既然要找第一次出现的字符并返回下标,这可以利用数组用C语言来实现,很容易想到的是把每个字母保存然后遍历数组中所有元素,循环结束时判断是否遇到相同的字符即可,具体方法用COUNT和I的判断相等来进行。如果所有的循环结束还是未返回,那么就返回-1即可。
缺点是时间复杂度是N方,优点是容易想到。
初学者的思路

全部评论

相关推荐

11-20 22:03
东北大学 Java
用哈基米写的简历,有点夸大,等我后面改谦虚点,能不能找个日常实习,项目是点评和天机,没什么荣誉要不要把蓝桥杯和六级删了算了,实在没门面
程序员花海:日常实习这份简历够用的,等实习之后把实习经历结合业务好好写一下 到时候把实习经历放在项目经历的前面 可以看我主页修改简历的模板
如何写一份好简历
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务