相同消除:O(n²)

  • 一个char如果后面有相同的char,就都替换成‘_’字符,(因为str只包含字母)
  • 如果第二个for循环 j 走到了 str的尾 都没有发生替换,那么 i 指的就是 第一个 的位置了
class Solution_02
{
    public int FirstNotRepeatingChar(String str)
    {
        if(str==null || str.length()==0) return -1;
        for(int i=0;i<str.length();i++)
        {
            char c=str.charAt(i);
            if(c!='_')
            {
                int j=i+1;
                for(;j<str.length();j++)
                {
                    if(c==str.charAt(j))
                    {
                        str=str.replace(c, '_');
                        break;
                    }
                }
                if(j==str.length())
                    return i;
            }
        }
        return -1;
    }
}