剑指Offer——JZ34.第一个只出现一次的字符【bitset】

题目传送门


在这里插入图片描述


题解

  • bitset占用内存更小。
  • 进阶题目:JZ54.字符流中第一个不重复的字符

AC-Code

class Solution {
     
public:
    int FirstNotRepeatingChar(string str) {
     
        bitset<128> bs1, bs2;
        for(int i = 0; i < str.length(); ++i) {
     
            if(bs1[str[i]]) 
                bs2[str[i]] = 1;
            else
                bs1[str[i]] = 1;
        }
        for(int i = 0; i < str.length(); ++i) {
     
            if(bs1[str[i]] && !bs2[str[i]])
                return i;
        }
        return -1;
    }
};

你可能感兴趣的:(剑指Offer)