स्ट्रि inमा अद्वितीय चरित्र फेला पार्नुहोस्  


कठिनाई तह सजिलो
बारम्बार सोधिन्छ अमेजन एप्पल ब्लूमबर्ग फेसबुक Goldman सैक्स गुगल माइक्रोसफ्ट बजेट Zillow
हैश ह्याशिंग घागो

In स्ट्रि inमा अद्वितीय चरित्र फेला पार्नुहोस् समस्या, हामी एक दिएका छौं string केवल सानो केस अक्षरहरू (एजे) समावेश गर्ने। हामीले यसमा पहिलो गैर-दोहोरिएको चरित्र खोज्नु पर्छ र सूचकांक प्रिन्ट गर्नुहोस्।

यदि त्यस्तो कुनै वर्ण प्रिन्ट -१ अवस्थित छैन।

इनपुट ढाँचा  

केवल एकल लाइनमा स्ट्रि containing

आउटपुट ढाँचा  

परिणामलाई पूर्णांक ढाँचामा प्रिन्ट गर्नुहोस्।

अवरोधहरू  

  • १ <= | s | <= १०
  • a <= s [i] <= z.
Example Input:
fwezfwjmevfukwejbfqegwkf
Example Output:
3

स्पष्टीकरण स्ट्रि inमा अद्वितीय चरित्र खोज्नुहोस्  

एर्रेमा क्यारेक्टरको गणना भण्डारण गर्नुहोस्। त्यसपछि सुरू देखि अन्त सम्म लूप चलाउनुहोस् र यदि एक वर्ण जसको गणना १ छ भने जाँच्नुहोस् र त्यसपछि हामीमा त्यो सूचक प्रिन्ट गर्नुहोस् र लूपबाट जम्प गर्नुहोस्। यहाँ प्रत्येक चरित्र को गणना छ जुन तल सूचीकृत छ।

a- ०, b- १, c- ०, d- ०, e-,, f-,, g- १, h- ०, i- ०, j- २, k- २, l- ०, m- १, n- ०, o- ०, p- ०, q- १, r- ०, s- ०, t- ०, u- १, v- १, w-,, x- ०, y- ०, z- १।

अब हामी स्ट्रिंगलाई शुरुबाट नै ट्र्याभर्स गर्छौं र जाँच गर्छौं कि त्यहाँ कुनै चरित्र छ जसको गन्ती १ छ। त्यसपछि हामी त्यस क्यारेक्टरको इन्डेक्स प्रिन्ट गर्छौं र लूप टर्मिनेट गर्छौं र यदि कुनै क्यारेक्टर भेटिएन भने प्रिन्ट -१। यहाँ हामी पायौं z गणना १ को रूपमा z z को सूचकांक प्रिन्ट गर्नुहोस् 3.

पनि हेर्नुहोस्
मान्य अनाग्रामहरू

कार्यान्वयनको लागि स्ट्रि inमा अद्वितीय वर्ण फेला पार्नुहोस्  

/*C++ Implementation of First uique character in a string*/ 
#include<bits/stdc++.h>
using namespace std;
int main() 
{ 
    string s;
    /*take string as input*/
    cin>>s;
    int len=s.length();
    int freq[26];
    /*initalize all with 0*/
    memset(freq,0,sizeof(freq));
    for(int i=0;i<len;i++)
    {
        /*count the characters and store count of a at freq[0], count of b at freq[1], 
          count of c at freq[2],...,count of z at freq[25]*/
        freq[s[i]-'a']++;
    }
    int flag=0;
    for(int i=0;i<len;i++)
    {
        /*check the first character whose count is 1*/
        if(freq[s[i]-'a']==1)
        {
            cout<<i<<endl;
            flag=1;
            /*jump from the loop*/
            goto label;
        }
    }
    label:;
    /*if no character found as count 1 then print -1*/
    if(!flag)
    {
        cout<<-1<<endl;
    }
    return 0; 
}
Example Input 1:
dvcaewliabjvwdbgkinshckgfdbfcvd
Example Output 1:
4
Example Input 2:
aabbccdddeeefffrrrwwwqqqhhhfffihhi
Example Output 2: 
-1

समय जटिलता  

O (L) जहाँ L स्ट्रिंगको लम्बाई हो।

ठाउँ जटिलता  

O (१) किनकि हामी केवल २ 26 साइजको स्थिर एर्रे फ्रिक मात्र सिर्जना गर्छौं जुन कम हो र हामी भन्न सक्दछौं कि स्पेस जटिलता स्थिर छ।

सन्दर्भ