Kth Non- ထပ်ကျော့ဇာတ်ကောင်


ခက်ခဲအဆင့် လွယ်ကူသော
မကြာခဏမေးတယ် အမေဇုံ Apple ဘလွန်းဘာ့ဂ် Facebook က Goldman Sachs Google Microsoft က Oracle က Zillow
hash တားဆီးခြင်း HashMap ကြိုး

ပြProbleနာဖော်ပြချက်

“ Kth ထပ်တလဲလဲမရှိသောအက္ခရာ” တွင်ကျွန်ုပ်တို့သည် a ကြိုး “ s” ။ kth non-repeating_character ကိုရှာဖွေရန် program တစ်ခုရေးပါ။ အကယ်၍ k ထက်နည်းပါက string တွင်ထပ်ခါတလဲလဲမလုပ်ပါက“ -1” ကိုရိုက်ပါ။

input ပုံစံ

"s" string ကိုပါရှိသောပထမ ဦး ဆုံးနှင့်တစ် ဦး တည်းလိုင်း။

Output အမျိုးအစား

kth non-repeating_character ကိုကိုယ်စားပြုသော a_character ပါဝင်သောပထမနှင့်တစ်ကြောင်းတည်း။ အကယ်၍ k ထက်နည်းပါက string တွင်ထပ်ခါတလဲလဲမလုပ်ပါက“ -1” ကိုရိုက်ပါ။

နမူနာ

tutorialcup
3
i

ရှင်းလင်းချက်: ဒီနေရာမှာ freq [t] က 2၊ freq [u] က 2 ဖြစ်ပြီးကျန်ကျန်တဲ့ char တွေမှာ freq 1. ရှိတယ်။ ဒါကြောင့် Kth-repeating_character သည် "or".

algorithm

1. အက္ခရာအရေအတွက်ကိုသိမ်းဆည်းထားရန် count array တစ်ခုဖန်တီးပါ။

2. ထပ်ခါတလဲလဲမဟုတ်သောစာလုံးများ၏အညွှန်းကိုသိမ်းဆည်းရန် index array တစ်ခုဖန်တီးပါ။

3. 'x' စာလုံးသည် index store အတွင်းရှိ string store n တွင်ထပ်ခါတလဲလဲသို့မဟုတ်မပါရှိပါက။

4. count array အားသုညနှင့် index array ခင်းပါ။ (n သည်ကြိုး၏အရှည်ဖြစ်သည်)

5. input ကို string ကို x = str [i] ဖြတ်သန်း

6. အတိုးအရေအတွက် [x]

7. count က [x] = 1, ထို့နောက်အညွှန်းကိန်း၌ x ၏အညွှန်းကိန်းသိုလှောင် [x] ။ အညွှန်းကိန်း [x] = ဈ

8. count က [x] = 2 လျှင်, အညွှန်းကိန်းကနေ x ကိုဖယ်ရှား [] ။ အညွှန်းကိန်း [x] = n ။

9. index array ကိုစီပါ။

10 ။ Index [k] သည်ထပ်ခါတလဲလဲလုပ်ခြင်းမဟုတ်သော kth ဖြစ်သည်။

အကောင်အထည်ဖော်ရေး

C ++ ထပ်မံမွမ်းမံထားသောအက္ခရာကိုရှာဖွေရန်အစီအစဉ်

#include <bits/stdc++.h>
using namespace std;

int main()
{
   string s;
   cin>>s;
   int k;
   cin>>k;
   int n=s.length();
   int count[256];
   int index[256];
   memset(count,0,sizeof(count));
   for(int i=0;i<256;i++)
   {
       index[i]=n;
   }
   for(int i=0;i<n;i++)
   {
        count[s[i]]++;
        if(count[s[i]]==1)
        {
            index[s[i]]=i;
        }
        if(count[s[i]]==2)
        {
            index[s[i]]=n;
        }
   }
   sort(index, index+256);
    if(index[k-1]!=n)
    {
        cout<<s[index[k-1]]<<endl;  
    }
    else
    {
        cout<<-1<<endl;
    }
   return 0;
}

Kth Non-Repeating Character ကိုရှာဖွေရန် Java Program

import java.util.Arrays;
import java.util.Scanner;

class sum
{ 
  public static void main(String[] args) 
  { 
    Scanner sr = new Scanner(System.in); 
                String s = sr.next();
                int k=sr.nextInt();
                int n=s.length();
                int freq[] = new int [256];
                int index[] = new int [256];
                for(int i=0;i<256;i++)
                {
                    freq[i]=0;
                    index[i]=n;
                }
                for(int i=0;i<n;i++) 
                {
                    freq[s.charAt(i)]++; 
                    if(freq[s.charAt(i)]==1) 
                    { 
                        index[s.charAt(i)]=i; 
                    } 
                    if(freq[s.charAt(i)]==2) 
                    {
                        index[s.charAt(i)]=n;
                    }
                }
                Arrays.sort(index);
                if(index[k-1]!=n) 
                {
                    System.out.println(s.toCharArray()[index[k-1]]); 
                }
                else
                {
                    System.out.println(-1); 
                }
  } 
} 
tutorialcup
3
i

ရှုပ်ထွေးမှုခွဲခြမ်းစိတ်ဖြာခြင်း Kth Non-repeatating Character

အချိန်ရှုပ်ထွေး

အို (ဎ) ဘယ်မှာ n ပေးထားသောခင်းကျင်း၏အရွယ်အစားဖြစ်ပါတယ်။ ဤတွင်ကျွန်ုပ်တို့သည်ပေးထားသော string“ s” ကိုဖြတ်ပြီးဇာတ်ကောင်တစ်ခုစီ၏ကြိမ်နှုန်းကိုသာတွက်ချက်သည်။ စဉ်ဆက်မပြတ်အချိန်အတွက်လိုအပ်သောအဖြစ်ထို့နောက်အချို့စစ်ဆင်ရေးလုပ်ဆောင်။

အာကာသရှုပ်ထွေးမှု

အို (၁) ဘာလို့လဲဆိုတော့ဒီမှာကအမြဲတမ်းအာကာသကိုပဲသုံးတယ် 256 အရွယ်အစား။ ဤတွင်ကျွန်ုပ်တို့သည်ဇာတ်ကောင်ချင်းစီ၏ကြိမ်နှုန်းနှင့်အညွှန်းကိုသိမ်းဆည်းထားသည်။