从世界上任何语言中查找给定字符串中的第一个非重复字符

时间:2013-06-15 17:16:28

标签: c++ string

  

查找给定字符串中的第一个非重复字符。您可以假设该字符串包含来自世界上任何语言的任何字符

如果它只是一个包含所有ASCII字符的字符串,我就不懂“任何语言”。

然后我的解决方案是:

   // define a 
  bool  a[256];
   string b = "RAFAEL NADAL is KING OF CLAY";
   while (i < str.length())
     {
       int val = b[i];
        if (a[val])
            return false;
        else
            a[val] = true;
     }   

通过上述方法通过手工操作我们可以得到第一个非重复的字符 但我不理解“从任何语言”(即西班牙语,阿拉伯语等)

1 个答案:

答案 0 :(得分:0)

int firstNonRepeatingCharIndex(char* str)
{
    for ( int i = 0 ; *(str+i) ; i++)
    {
        int flag = 0;
        for ( int j = i+1 ; *(str+j) ; j++)
        {
            if ( *(str+i) == *(str+j))
                flag = 1;
        }
        if(flag == 0)
            return i;
    }
    return -1;
}