许多男孩在论坛上使用漂亮女孩的照片作为头像。因此,乍一看很难分辨用户的性别。去年,我们的 小亮同学 去了一个论坛,和一个美女聊得很开心(他是这么认为的)。在那之后,他们经常交谈,最终他们成为了网络中的一对。
但昨天,他来到现实世界中见到“她”,发现“她”其实是一个非常坚强的男人!我们的主人公非常难过,他现在太累了,不能再爱了。因此,他想出了一种通过用户名识别用户性别的方法。
这是他的方法:如果一个人的用户名中不同字符的数量是奇数,那么他就是男性,否则她是女性。您将获得表示用户名的字符串,请帮助我们的英雄通过他的方法确定该用户的性别。
本题解题关键是找到输入的字符串内含有多少个不同元素,这里给出两种思路。
1. 先创建一个含有全部字母的字符串和一个大小为26(分别对应a-z)且元素均为0的数组(此数组中元素代表输入的字符串中是否含有相应下标的字母,如果没有则为0,如果含有此字母则为1),然后对输入的字符串进行遍历,并与含有全部字母的字符串进行比较,寻找字符串内含有的字母,并让其对应下标的数组的值为1。然后对数组进行遍历,计算数组中1的个数。这个个数即为输入字符串中不同字母的个数。
完整代码如下:
运行结果:
2. 首先创立一个新的字符串用来存放输入字符串内的不同的元素,然后对输入的字符串进行遍历,并与新的字符串进行比较,如果不等于则标记++,然后标记与新的字符串的长度进行比较,如果此次循环的元素是之前没有出现过的元素,则标记的数值应该与新的字符串的大小相等,如果标记的数值与新的字符串的大小相等,则让本次循环的字母成为新的字符串的下一个元素。如果本次循环的字母与新字符串内的某一元素相等则直接跳出本次循环,进入下一次循环。
完整代码如下:
运行结果: