判定字符是否唯一
一个会员题:
概述:问给定字符串中是否无重复字符(如果不适用额外数据结构会加分)
analyse:
1.n^2暴力,n+logn排序+遍历
2.思考过位运算,因为有异或操作,但是只适用于在偶数次中找奇数次,这里不是很符合。
3.标准解法还是位运算:
如果字符只有a-z字符26个,考虑int类型有32位,那么将int内每一位当作桶存来处理即可。
code:
class Solution { public: bool isUnique(string astr) { int chack = 0; // int型变量 for (char &ch : astr) { if (chack & (1 << (ch - 'a'))) return false; //当前位所表示的字母已经出现过 chack |= (1 << (ch - 'a')); //累加当前字母所代表的的位 } return true; } };
【Over】

浙公网安备 33010602011771号