In Bir simvolda unikal xarakter tapın problem, biz verdik sim yalnız kiçik hərfləri (az) ehtiva edir. İçindəki ilk təkrarlanmayan xarakteri tapmalı və indeksi yazdırmalıyıq.
belə bir xarakter yoxdursa çap -1.
Mündəricat
Giriş Formatı
Yalnız bir sətir olan bir sətir.
Çıxış formatı
Nəticəni tam bir formatda çap edin.
Məhdudiyyətlər
- 1 <= | s | <= 1000000
- a <= s [i] <= z.
Example Input: fwezfwjmevfukwejbfqegwkf
Example Output: 3
Sətirdə misilsiz xarakter tapmaq üçün izah
Karakter sayını bir massivdə saxlayın. Sonra döngəni başdan sona qədər çalıştırın və sayı 1 olan bir xarakterin olub olmadığını yoxlayın, sonra bu indeksi bizdə yazdırın və döngədən sıçrayın. Aşağıda göstərilən hər bir simvolun sayı.
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, n- 0, o- 0, p- 0, q- 1, r- 0, s- 0, t- 0, u- 1, v- 1, w- 4, x- 0, y- 0, z- 1.
İndi simli əvvəldən keçirik və sayı 1 olan hər hansı bir simvolun olub olmadığını yoxlayırıq. Sonra həmin simvolun indeksini çap edib döngəni sonlandırırıq və heç bir simvol tapmasaq -1 yazdırırıq. Budur z say 1 olaraq, z olan indeksini yaz 3.
Bir simli misilsiz xarakter tapmaq üçün tətbiqetmə
/*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
Zaman mürəkkəbliyi
O (L) burada L simli uzunluqdur.
Kosmik mürəkkəblik
O (1) çünki yalnız az olan 26 ölçülü sabit bir frekans yaradırıq və kosmik mürəkkəbliyi sabit deyə bilərik.