هڪ تسلسل ۾ سڀني کان وڌيڪ ورجايل لفظ


تڪليف جي سطح آسان
بار بار پڇڻ ۾ Amazon اي صحت Goldman سيچ پيٽرم اسپيڊل UHG آپٽم
هاش اسٽرنگ

اسٽرنگ جي ترتيب کي ترتيب ڏيڻ ، ڪم ٻئي بار بار (يا بار بار) لفظ ڳولهڻ آهي يا جملو تسلسل ۾. (خيال ڪرڻ ۾ ٻه لفظ ٻئي گهڻا بار بار نه هوندا ، اتي هميشه هڪ لفظ هوندو).

مثال

انٽرويو

”“ بي ”،“ بي بي ”،“ بي بي ”،“ اا ”،“ اا ”، سي“}

پيداوار:

ٻئي وڏي تعدد سان جوڙ: ب

مرڪزي خيال

اسان هر اسٽرنگ جي فريڪئنسي کي هش ٽيبل ۾ محفوظ ڪنداسين ۽ ان کانپوءِ ، اسان صرف هش ٽيبل کي ٻيهر تار ڪري سگهون ٿا ٻئي تار جي گهڻي تعدد سان.

هش ميز ڇا آهي؟

هش ٽيبل هڪ ڊيٽا جي structureانچي آهي جيڪا گڏيل طريقي سان ڊيٽا کي اسٽور ڪري ٿي. هيش جدولن ۾ ، چابيون هن جي قدرن ڏانهن نقش ٿيل آهن ، جتي هر چٽڻ هڪ منفرد انڊيڪس آهي. تنهن ڪري جيڪڏهن اسان گهربل قيمت جو انڊيڪس knowاڻو ٿا ، ته اهو رسائي ڪرڻ تمام تيز ۽ موثر ٿي وڃي ٿو. هش ٽيبل هر هش لاءِ ڌار انڊيڪس حساب ڪرڻ لاءِ هشنگ استعمال ڪندو آهي ، جنهن کي هش ڪوڊ به چيو ويندو آهي ، جنهن جي ذريعي گهربل قيمت معلوم ڪري سگهجي ٿي
هڪ بنيادي هش ٽيبل ٻن حصن تي مشتمل آهي:

  1. هش جو فنڪشن
    هاش فنڪشن کي هش ڪرڻ لاءِ استعمال ڪيو ويندو آهي جيڪو اسان جي اهم قيمت واري جوڙي جي اشاري کي طئي ڪندو آهي. هڪ موثر هش فنڪشن چونڊڻ هڪ سٺي هش ٽيبل ٺاهڻ جو هڪ اهم حصو آهي. اسان کي هميشه اها پڪ ڪرڻ گهرجي ته اها هڪ طرفي فعل آهي ، يعني ڪيچ کي هاش کان واپس نه ٿو وٺي سگهجي. هڪ ٻي شي جنهن کي غور ڪرڻ گهرجي اهو آهي ته هيش فنڪشن مختلف ڪيزز لاءِ هڪ ئي هش ڪوڊ نٿو ٺاهي.
  2. ڪيريو
    صف ۾ جدول ۾ سڀ اھميت جا اندراج رکيل آھن. انگن جي مقدار مقرر ڪيل مقدار جي ترتيب مطابق طئي ٿيڻ گهرجي.

هڪ تسلسل ۾ ٻئين دفعي ڪيل لفظ الورورٿم

  1. هڪ هيش ٽيبل قرار ڏيو.
  2. هر تار جي فريڪوئنسي کي هش ميز ۾ محفوظ ڪريو.
  3. هيش ٽيبل تي ير theار ڪريو ۽ ٻئي وڌ کان وڌ تعدد سان تار ڳولي.
  4. تار ڇپرايو.

مثال سان سمجھو

داخل ٿيل: {“aaa”، “bb”، “bb”، “aaa”، “aaa”، c ”}

هيش ٽيبل هن ريت نظر ايندي.

هڪ تسلسل ۾ سڀني کان وڌيڪ ورجايل لفظ

تي عملدرآمد

سي ++ پروگرام ھڪڙي ٻي تسلسل ۾ ٻئين اڪثر ورجايل لفظ لاءِ

#include <bits/stdc++.h>
using namespace std;
string stringWithSecondHighestFrequency(vector<string> &A)
{
    unordered_map<string, int> hash_table;
    // Store the frequency of strings in a hash table
    for (int i = 0; i < A.size(); i++)
    {
        hash_table[A[i]]++;
    }
    // Find the second highest frequency
    int max_freq = 0;
    int second_highest_freq = 0;
    for (auto ele : hash_table)
    {
        max_freq = max(max_freq, ele.second);
        if (second_highest_freq < ele.second && ele.second < max_freq)
        {
            second_highest_freq = ele.second;
        }
    }
    // Find the string with second_highest_freq
    for (auto ele : hash_table)
    {
        if (ele.second == second_highest_freq)
        {
            return ele.first;
        }
    }
}
int main()
{
    vector<string> A = {"aaa", "bb", "bb", "aaa", "aaa", "c"};
    cout << "String with second highest frequency is: " << stringWithSecondHighestFrequency(A) << endl;
    return 0;
}
String with second highest frequency is: bb

جاوا پروگرام هڪ سلسلي ۾ ٻئين بار بار ورتل لفظ

import java.util.*;
public class Main
{
    public static String stringWithSecondHighestFrequency(String[] A)
    {
        int n = A.length;
        HashMap<String,Integer> hash_table = new HashMap<String,Integer>();
        // Store the frequency of strings in a hash table
        for (int i = 0; i < n; i++)
        {
            Integer j = hash_table.get(A[i]); 
            hash_table.put(A[i], (j == null) ? 1 : j + 1); 
        }
        // Find the second highest frequency
        int max_freq = 0;
        int second_highest_freq = 0;
        for (Map.Entry<String,Integer> entry : hash_table.entrySet())  
        {
            max_freq = Math.max(max_freq, entry.getValue());
            if (second_highest_freq < entry.getValue() && entry.getValue() < max_freq)
            {
                second_highest_freq = entry.getValue();
            }
        }
        // Find the string with second_highest_freq
        for (Map.Entry<String,Integer> entry : hash_table.entrySet())  
        {
            if (entry.getValue() == second_highest_freq)
            {
                return entry.getKey();
            }
        }
        return "";  
    }
  public static void main(String[] args) {
      String[] A = {"aaa", "bb", "bb", "aaa", "aaa", "c"};
    System.out.println("String with second highest frequency is: "+stringWithSecondHighestFrequency(A));
  }
}


String with second highest frequency is: bb

هڪ تسلسل ۾ ٻئين اڪثر ورجايل لفظ لاءِ پيچيدگي تجزيو

وقت جي پيچيدگي

اسان هڪ ڀيرو صرف ویکٹر جي تکرار ڪري رهيا آهيون ، تنهن ڪري وقت جي پيچيدگي آهي اي (اين).

خلائي پيچيدگي

اسان کي هش ٽيبل برقرار رکي رهيا آهيون ، تنهنڪري خلائي پيچيدگي آهي اي (اين).

حوالا