શબ્દમાળામાં અનન્ય પાત્ર શોધો  


મુશ્કેલી સ્તર સરળ
વારંવાર પૂછવામાં આવે છે એમેઝોન સફરજન બ્લૂમબર્ગ ફેસબુક ગોલ્ડમૅન સૅશ Google માઈક્રોસોફ્ટ ઓરેકલ ઝિલો
હેશ હેશિંગ શબ્દમાળા

In શબ્દમાળામાં અનન્ય પાત્ર શોધો સમસ્યા, અમે એક આપ્યો છે શબ્દમાળા જેમાં ફક્ત નાના કેસ (મૂળાક્ષરો) હોય છે. આપણે તેમાં પ્રથમ પુનરાવર્તિત પાત્ર શોધીશું અને અનુક્રમણિકા છાપો.

જો આવું કોઈ પાત્ર છાપવામાં ન આવે તો -1.

ઇનપુટ ફોર્મેટ  

શબ્દમાળાઓવાળી ફક્ત એક જ લાઇન.

આઉટપુટ ફોર્મેટ  

પરિણામ પૂર્ણાંક ફોર્મેટમાં છાપો.

અવરોધ  

  • 1 <= | સે | <= 1000000
  • a <= s [i] <= z.
Example Input:
fwezfwjmevfukwejbfqegwkf
Example Output:
3

શબ્દમાળામાં અનન્ય પાત્ર શોધો માટેનું વર્ણન  

એરેમાં પાત્રની ગણતરી સ્ટોર કરો. પછી શરૂઆતથી અંત સુધી લૂપ ચલાવો અને તપાસ કરો કે કોઈ પાત્ર કે જેની ગણતરી 1 છે પછી તે સૂચિ આપણી પાસે છાપો અને લૂપમાંથી કૂદકો. અહીં દરેક પાત્રની ગણતરી છે જે નીચે સૂચિબદ્ધ છે.

a- 0, b- 1, c- 0, d- 0, e- 4, f- 5, g- 1, h- 0, i- 0, j- 2, k- 2, l- 0, m- 1, એન- 0, ઓ- 0, પી- 0, ક્યૂ -1, આર- 0, એસ- 0, ટી- 0, યુ- 1, વી- 1, ડબલ્યુ- 4, એક્સ- 0, વાય- 0, z- 1.

હવે, આપણે શરૂઆતથી જ શબ્દમાળાને વટાવીએ છીએ અને તપાસ કરીએ છીએ કે કોઈ પાત્ર અસ્તિત્વમાં છે કે જેની ગણતરી 1 છે. પછી આપણે તે પાત્રનું અનુક્રમણિકા છાપીએ છીએ અને લૂપ સમાપ્ત કરીએ છીએ અને જો અમને કોઈ પાત્ર ન મળે તો પછી પ્રિન્ટ -1. અહીં અમે મળી z ગણતરી 1 તરીકે z ની અનુક્રમણિકા જે છે તે છાપો 3.

આ પણ જુઓ
માન્ય એનાગ્રામ્સ

શબ્દમાળામાં અનન્ય પાત્ર શોધો માટે અમલીકરણ  

/*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

સમયની જટિલતા  

ઓ (એલ) જ્યાં એલ શબ્દમાળાની લંબાઈ છે.

જગ્યાની જટિલતા  

ઓ (1) કારણ કે આપણે ફક્ત 26 કદના સતત એરે ફ્રીક બનાવીએ છીએ જે ઓછું છે અને આપણે કહી શકીએ કે જગ્યાની જટિલતા સતત છે.

સંદર્ભ