Ποιο γράμμα εμφανίζεται τις περισσότερες φορές σε αυτήν τη συμβολοσειρά; Δημιουργήστε ένα πρόγραμμα για να το καταλάβετε!
Οι χορδές είναι ένα πολύ σημαντικό θέμα στις προγραμματικές συνεντεύξεις. Είναι συνετό να ασκήσετε ορισμένα προβλήματα προγραμματισμού που εστιάζουν στις χορδές πριν από τις συνεντεύξεις σας. Σε αυτό το άρθρο, θα μάθετε πώς μπορείτε να βρείτε τον πιο συχνά εμφανιζόμενο χαρακτήρα σε μια συμβολοσειρά.
Παραδείγματα για την κατανόηση του προβλήματος
Παράδειγμα 1: Αφήστε τη δεδομένη συμβολοσειρά να είναι "Makeuseof". Ο χαρακτήρας 'e' εμφανίζεται 2 φορές στη δεδομένη συμβολοσειρά και όλοι οι άλλοι χαρακτήρες εμφανίζονται μόνο μία φορά. Έτσι, ο χαρακτήρας 'e' έχει την υψηλότερη συχνότητα στη δεδομένη συμβολοσειρά.
Παράδειγμα 2: Αφήστε τη δεδομένη συμβολοσειρά να είναι "Βλέπει τυρί". Ο χαρακτήρας 'e' εμφανίζεται 6 φορές στη δεδομένη συμβολοσειρά και όλοι οι άλλοι χαρακτήρες εμφανίζονται λιγότερο από 6 φορές. Έτσι, ο χαρακτήρας 'e' έχει την υψηλότερη συχνότητα στη δεδομένη συμβολοσειρά.
Προσέγγιση για να βρείτε τον πιο συχνά εμφανιζόμενο χαρακτήρα σε μια συμβολοσειρά
Η τεχνική κατακερματισμού είναι ο πιο αποτελεσματικός τρόπος για να βρείτε τον χαρακτήρα που έχει την υψηλότερη συχνότητα σε μια συμβολοσειρά. Σε αυτήν την τεχνική, η συμβολοσειρά διασχίζεται και κάθε χαρακτήρας της συμβολοσειράς ενσωματώνεται σε έναν πίνακα χαρακτήρων ASCII.
Αφήστε τη συμβολοσειρά εισαγωγής να είναι "Makeuseof", κάθε χαρακτήρας αυτής της συμβολοσειράς έχει κατακερματιστεί ως εξής:
συχνότητα ['M'] = 1
συχνότητα ['a] = 1
συχνότητα ['k'] = 1
συχνότητα ['e'] = 2
συχνότητα ['u'] = 1
συχνότητα ['s'] = 1
συχνότητα ['o'] = 1
συχνότητα ['f'] = 1
Επιστρέφεται το ευρετήριο της μέγιστης τιμής στη συστοιχία συχνοτήτων. Εδώ 2 είναι η υψηλότερη τιμή, επομένως επιστρέφεται το 'e'.
Πρόγραμμα C ++ για να βρείτε τον χαρακτήρα με την υψηλότερη συχνότητα
Ακολουθεί το πρόγραμμα C ++ για να βρείτε τον χαρακτήρα με την υψηλότερη συχνότητα σε μια συμβολοσειρά:
Σχετιζομαι με: Πώς να μετρήσετε τις εμφανίσεις ενός δεδομένου χαρακτήρα σε μια συμβολοσειρά
// C ++ πρόγραμμα για να βρείτε τον χαρακτήρα
// με την υψηλότερη συχνότητα σε μια συμβολοσειρά
#περιλαμβάνω
#περιλαμβάνω
# καθορισμός ASCII_SIZE 256
χρησιμοποιώντας το namespace std;
char maxFrequencyChar (συμβολοσειρά str)
{
// Πίνακας για να αποθηκεύσετε τη συχνότητα κάθε χαρακτήρα
// Αρχικοποίησε τη συχνότητα κάθε χαρακτήρα ως 0
int συχνότητα [ASCII_SIZE] = {0};
// Εύρεση μήκους της συμβολοσειράς εισόδου
int lenOfStr = str.length ();
// Αρχικοποιήστε τη μεταβλητή maxFrequency
int maxFrequency = -1;
// Αρχικοποιήστε τη μεταβλητή maxFrequencyChar
char maxFrequencyChar;
// Διασχίζοντας και διατηρώντας το
// συχνότητα κάθε χαρακτήρα
για (int i = 0; εγώ {
συχνότητα [str [i]] ++;
εάν (maxFrequency {
maxFrequency = συχνότητα [str [i]];
maxFrequencyChar = str [i];
}
}
επιστροφή maxFrequencyChar;
}
// Κωδικός προγράμματος οδήγησης
int main ()
{
string str1 = "Ποια μάγισσα είναι ποια;";
cout << "str1:" << str1 << endl;
cout << "Ο χαρακτήρας της υψηλότερης συχνότητας είναι:" << maxFrequencyChar (str1) << endl;
string str2 = "Έριξε τρεις ελεύθερες βολές";
cout << "str2:" << str2 << endl;
cout << "Ο υψηλότερος χαρακτήρας συχνότητας είναι:" << maxFrequencyChar (str2) << endl;
string str3 = "Ο Eddie το επεξεργάστηκε";
cout << "str3:" << str3 << endl;
cout << "Ο χαρακτήρας υψηλότερης συχνότητας είναι:" << maxFrequencyChar (str3) << endl;
string str4 = "Makeuseof";
cout << "str4:" << str4 << endl;
cout << "Ο χαρακτήρας της υψηλότερης συχνότητας είναι:" << maxFrequencyChar (str4) << endl;
string str5 = "Βλέπει τυρί";
cout << "str5:" << str5 << endl;
cout << "Ο υψηλότερος χαρακτήρας συχνότητας είναι:" << maxFrequencyChar (str5) << endl;
}
Παραγωγή:
str1: Ποια μάγισσα είναι ποια;
Ο χαρακτήρας υψηλότερης συχνότητας είναι: h
str2: Έριξε τρεις ελεύθερες βολές
Ο χαρακτήρας με τη μεγαλύτερη συχνότητα είναι: ε
str3: Ο Eddie το επεξεργάστηκε
Ο χαρακτήρας υψηλότερης συχνότητας είναι: d
str4: Makeuseof
Ο χαρακτήρας με τη μεγαλύτερη συχνότητα είναι: ε
str5: Βλέπει τυρί
Ο χαρακτήρας με τη μεγαλύτερη συχνότητα είναι: ε
Πρόγραμμα Python για να βρείτε τον χαρακτήρα με την υψηλότερη συχνότητα
Ακολουθεί το πρόγραμμα Python για να βρείτε τον χαρακτήρα με την υψηλότερη συχνότητα σε μια συμβολοσειρά:
Σχετιζομαι με: Πώς να αντιστρέψετε μια συμβολοσειρά σε C ++, Python και JavaScript
# Πρόγραμμα Python για να βρείτε τον χαρακτήρα
# έχοντας την υψηλότερη συχνότητα σε μια συμβολοσειρά
ASCII_SIZE = 256
def maxFrequencyChar (str):
# Πίνακας για αποθήκευση της συχνότητας κάθε χαρακτήρα
# Αρχικοποίησε τη συχνότητα κάθε χαρακτήρα ως 0
συχνότητα = [0] * ASCII_SIZE
# Αρχικοποιήστε τη μεταβλητή maxFrequency
maxFrequency = -1
# Αρχικοποιήστε τη μεταβλητή maxFrequencyChar
maxFrequencyChar = "
# Διασχίζοντας και διατηρώντας το
# συχνότητα κάθε χαρακτήρα
για i in str:
συχνότητα [ord (i)] + = 1
για i in str:
εάν maxFrequency maxFrequency = συχνότητα [ord (i)]
maxFrequencyChar = i
επιστροφή maxFrequencyChar
# Κωδικός προγράμματος οδήγησης
str1 = "Ποια μάγισσα είναι ποια;"
εκτύπωση ("str1:", str1)
εκτύπωση ("Ο χαρακτήρας με την υψηλότερη συχνότητα είναι:", maxFrequencyChar (str1))
str2 = "Έριξε τρεις ελεύθερες βολές"
εκτύπωση ("str2:", str2)
εκτύπωση ("Ο χαρακτήρας με την υψηλότερη συχνότητα είναι:", maxFrequencyChar (str2))
str3 = "Ο Eddie το επεξεργάστηκε"
εκτύπωση ("str3:", str3)
εκτύπωση ("Ο χαρακτήρας με την υψηλότερη συχνότητα είναι:", maxFrequencyChar (str3))
str4 = "Makeuseof"
εκτύπωση ("str4:", str4)
εκτύπωση ("Ο χαρακτήρας με την υψηλότερη συχνότητα είναι:", maxFrequencyChar (str4))
str5 = "Βλέπει τυρί"
εκτύπωση ("str5:", str5)
εκτύπωση ("Ο χαρακτήρας με τη μεγαλύτερη συχνότητα είναι:", maxFrequencyChar (str5))
Παραγωγή:
str1: Ποια μάγισσα είναι ποια;
Ο χαρακτήρας υψηλότερης συχνότητας είναι: h
str2: Έριξε τρεις ελεύθερες βολές
Ο χαρακτήρας με τη μεγαλύτερη συχνότητα είναι: ε
str3: Ο Eddie το επεξεργάστηκε
Ο χαρακτήρας υψηλότερης συχνότητας είναι: d
str4: Makeuseof
Ο χαρακτήρας με τη μεγαλύτερη συχνότητα είναι: ε
str5: Βλέπει τυρί
Ο χαρακτήρας με τη μεγαλύτερη συχνότητα είναι: ε
Πρόγραμμα Γ για την εύρεση του χαρακτήρα με την υψηλότερη συχνότητα
Ακολουθεί το πρόγραμμα C για να βρείτε τον χαρακτήρα με την υψηλότερη συχνότητα σε μια συμβολοσειρά:
Σχετιζομαι με: Πώς να βρείτε φωνήεντα, σύμφωνα, ψηφία και ειδικούς χαρακτήρες σε μια συμβολοσειρά
// C πρόγραμμα για να βρείτε τον χαρακτήρα
// με την υψηλότερη συχνότητα σε μια συμβολοσειρά
#περιλαμβάνω
#περιλαμβάνω
# καθορισμός ASCII_SIZE 256
χρησιμοποιώντας το namespace std;
char maxFrequencyChar (char * str)
{
// Πίνακας για να αποθηκεύσετε τη συχνότητα κάθε χαρακτήρα
// Αρχικοποίησε τη συχνότητα κάθε χαρακτήρα ως 0
int συχνότητα [ASCII_SIZE] = {0};
// Εύρεση μήκους της συμβολοσειράς εισόδου
int lenOfStr = strlen (str);
// Αρχικοποιήστε τη μεταβλητή maxFrequency
int maxFrequency = 0;
// Αρχικοποιήστε τη μεταβλητή maxFrequencyChar
char maxFrequencyChar;
// Διασχίζοντας και διατηρώντας το
// συχνότητα κάθε χαρακτήρα
για (int i = 0; εγώ {
συχνότητα [str [i]] ++;
εάν (maxFrequency {
maxFrequency = συχνότητα [str [i]];
maxFrequencyChar = str [i];
}
}
επιστροφή maxFrequencyChar;
}
// Κωδικός προγράμματος οδήγησης
int main ()
{
char str1 [] = "Ποια μάγισσα είναι ποια;";
printf ("str1:% s", str1);
printf ("Ο χαρακτήρας με την υψηλότερη συχνότητα είναι:% c \ n", maxFrequencyChar (str1));
char str2 [] = "Έριξε τρεις ελεύθερες βολές";
printf ("str2:% s", str2);
printf ("Ο χαρακτήρας με την υψηλότερη συχνότητα είναι:% c \ n", maxFrequencyChar (str2));
char str3 [] = "Ο Eddie το επεξεργάστηκε";
printf ("str3:% s", str3);
printf ("Ο χαρακτήρας με την υψηλότερη συχνότητα είναι:% c \ n", maxFrequencyChar (str3));
char str4 [] = "Makeuseof";
printf ("str4:% s", str4);
printf ("Ο χαρακτήρας με την υψηλότερη συχνότητα είναι:% c \ n", maxFrequencyChar (str4));
char str5 [] = "Βλέπει τυρί";
printf ("str1:% s", str5);
printf ("Ο χαρακτήρας με τη μεγαλύτερη συχνότητα είναι:% c \ n", maxFrequencyChar (str5));
}
Παραγωγή:
str1: Ποια μάγισσα είναι ποια;
Ο χαρακτήρας υψηλότερης συχνότητας είναι: h
str2: Έριξε τρεις ελεύθερες βολές
Ο χαρακτήρας με τη μεγαλύτερη συχνότητα είναι: ε
str3: Ο Eddie το επεξεργάστηκε
Ο χαρακτήρας υψηλότερης συχνότητας είναι: d
str4: Makeuseof
Ο χαρακτήρας με τη μεγαλύτερη συχνότητα είναι: ε
str5: Βλέπει τυρί
Ο χαρακτήρας με τη μεγαλύτερη συχνότητα είναι: ε
Πρόγραμμα JavaScript για την εύρεση του χαρακτήρα με την υψηλότερη συχνότητα
Ακολουθεί το πρόγραμμα JavaScript για να βρείτε τον χαρακτήρα με την υψηλότερη συχνότητα σε μια συμβολοσειρά:
// Πρόγραμμα JavaScript για να βρείτε τον χαρακτήρα
// με την υψηλότερη συχνότητα σε μια συμβολοσειρά
ας ASCII_SIZE = 256;
συνάρτηση maxFrequencyChar (str)
{
// Πίνακας για να αποθηκεύσετε τη συχνότητα κάθε χαρακτήρα
// Αρχικοποίησε τη συχνότητα κάθε χαρακτήρα ως 0
let συχνότητα = νέο Array (ASCII_SIZE);
για (let i = 0; i {
συχνότητα [i] = 0;
}
// Εύρεση μήκους της συμβολοσειράς εισόδου
ας lenOfStr = str.length;
για (let i = 0; εγώ {
συχνότητα [str [i] .charCodeAt (0)] + = 1;
}
// Αρχικοποιήστε τη μεταβλητή maxFrequency
ας maxFrequency = -1;
// Αρχικοποιήστε τη μεταβλητή maxFrequencyChar
ας maxFrequencyChar = ";
// Διασχίζοντας και διατηρώντας το
// συχνότητα κάθε χαρακτήρα
για (let i = 0; εγώ {
εάν (maxFrequency {
maxFrequency = συχνότητα [str [i] .charCodeAt (0)];
maxFrequencyChar = str [i];
}
}
επιστροφή maxFrequencyChar;
}
// Κωδικός προγράμματος οδήγησης
let str1 = "Ποια μάγισσα είναι ποια;";
document.write ("str1:" + str1 + ")
");
document.write ("Ο χαρακτήρας με την υψηλότερη συχνότητα είναι:" + maxFrequencyChar (str1) + "
")
let str2 = "Έριξε τρεις ελεύθερες βολές";
document.write ("str2:" + str2 + ")
");
document.write ("Ο χαρακτήρας υψηλότερης συχνότητας είναι:" + maxFrequencyChar (str2) + "
")
let str3 = "Ο Eddie το επεξεργάστηκε";
document.write ("str3:" + str3 + ")
");
document.write ("Ο χαρακτήρας με τη μεγαλύτερη συχνότητα είναι:" + maxFrequencyChar (str3) + "
")
let str4 = "Makeuseof";
document.write ("str4:" + str4 + ")
");
document.write ("Ο χαρακτήρας με τη μεγαλύτερη συχνότητα είναι:" + maxFrequencyChar (str4) + "
")
let str5 = "Βλέπει τυρί";
document.write ("str5:" + str5 + ")
");
document.write ("Ο χαρακτήρας υψηλότερης συχνότητας είναι:" + maxFrequencyChar (str5) + "
")
Παραγωγή:
str1: Ποια μάγισσα είναι ποια;
Ο χαρακτήρας υψηλότερης συχνότητας είναι: h
str2: Έριξε τρεις ελεύθερες βολές
Ο χαρακτήρας με τη μεγαλύτερη συχνότητα είναι: ε
str3: Ο Eddie το επεξεργάστηκε
Ο χαρακτήρας υψηλότερης συχνότητας είναι: d
str4: Makeuseof
Ο χαρακτήρας με τη μεγαλύτερη συχνότητα είναι: ε
str5: Βλέπει τυρί
Ο χαρακτήρας με τη μεγαλύτερη συχνότητα είναι: ε
Αναλύστε την πολυπλοκότητα του χρόνου και του χώρου
Η πολυπλοκότητα του χρόνου maxFrequencyChar () η λειτουργία είναι Επί). Η διαστημική πολυπλοκότητα του maxFrequencyChar () η λειτουργία είναι Ο (1) ως σταθερός χώρος (πίνακας Hash). Δεν εξαρτάται από το μέγεθος συμβολοσειράς εισόδου.
Η σημειογραφία Big-O σάς δίνει έναν τρόπο υπολογισμού του χρόνου που απαιτείται για την εκτέλεση του κωδικού σας. Είναι μια από τις πιο σημαντικές έννοιες για την ανάλυση των αλγορίθμων. Εάν είστε προγραμματιστής, πρέπει να γνωρίζετε για το Big-O Notation.
Ο κώδικάς σας πρέπει να είναι αποτελεσματικός, αλλά πώς δείχνετε πόσο αποτελεσματικό είναι κάτι; Με το Big-O!
Διαβάστε Επόμενο
- Προγραμματισμός
- JavaScript
- Πύθων
- Εκμάθηση κωδικοποίησης
- Προγραμματισμός Γ

Ο Yuvraj είναι προπτυχιακός φοιτητής Πληροφορικής στο Πανεπιστήμιο του Δελχί της Ινδίας. Είναι παθιασμένος με το Full Stack Web Development. Όταν δεν γράφει, εξερευνά το βάθος διαφορετικών τεχνολογιών.
Εγγραφείτε στο Newsletter μας
Εγγραφείτε στο ενημερωτικό δελτίο μας για τεχνικές συμβουλές, κριτικές, δωρεάν ebook και αποκλειστικές προσφορές!
Ένα ακόμη βήμα…!
Επιβεβαιώστε τη διεύθυνση email σας στο email που μόλις σας στείλαμε.