Από τον Yuvraj Chandra
Μερίδιο
ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ

Η σύγκριση εάν δύο συμβολοσειρές κειμένου είναι αναγράμματα είναι μια μεγάλη εργασία επίλυσης προβλημάτων για τη βελτίωση των δεξιοτήτων προγραμματισμού.

Το anagram είναι μια συμβολοσειρά που σχηματίζεται αναδιατάσσοντας τα γράμματα μιας διαφορετικής συμβολοσειράς. Ο έλεγχος αν δύο χορδές είναι αναγράμματα μεταξύ τους μπορεί να ακούγεται δύσκολο, αλλά είναι λίγο δύσκολο και παραπλανητικό. Σε αυτό το άρθρο, θα μάθετε πώς να ελέγχετε εάν δύο χορδές είναι αναγράμματα μεταξύ τους χρησιμοποιώντας C ++, Python και JavaScript.

Δήλωση προβλήματος

Σας δίνονται δύο χορδές s1 και s2, πρέπει να ελέγξετε αν οι δύο χορδές είναι αναγράμματα μεταξύ τους ή όχι.

Παράδειγμα 1: Αφήστε s1 = "δημιουργικό" και s2 = "αντιδραστικό".

Δεδομένου ότι η δεύτερη συμβολοσειρά μπορεί να σχηματιστεί με την αναδιάταξη των γραμμάτων της πρώτης συμβολοσειράς και το αντίστροφο, έτσι οι δύο χορδές είναι αναγράμματα μεταξύ τους.

instagram viewer

Παράδειγμα 2: Αφήστε το s1 = "Ο Peter Piper διάλεξε ένα κομμάτι τουρσί πιπεριάς" και το s2 = "Ένα ράμφη τουρσί πιπέρι Peter Piper πήρε".

Δεδομένου ότι η δεύτερη συμβολοσειρά δεν μπορεί να σχηματιστεί αναδιατάσσοντας τα γράμματα της πρώτης συμβολοσειράς και αντίστροφα, έτσι οι δύο χορδές δεν είναι αναγράμματα μεταξύ τους.

Διαδικασία για να ελέγξετε εάν δύο χορδές είναι αναγράμματα μεταξύ τους

Μπορείτε να ακολουθήσετε την παρακάτω προσέγγιση για να ελέγξετε αν οι δύο χορδές είναι αναγράμματα μεταξύ τους:

  1. Συγκρίνετε το μήκος και των δύο χορδών.
  2. Εάν το μήκος και των δύο χορδών δεν είναι το ίδιο, αυτό σημαίνει ότι δεν μπορούν να είναι αναγράμματα μεταξύ τους. Έτσι, επιστρέψτε ψευδές.
  3. Εάν το μήκος και των δύο χορδών είναι το ίδιο, προχωρήστε περαιτέρω.
  4. Ταξινόμηση και των δύο χορδών.
  5. Συγκρίνετε και τις δύο ταξινομημένες χορδές.
  6. Εάν και οι δύο ταξινομημένες χορδές είναι ίδιες, σημαίνει ότι είναι αναγράμματα μεταξύ τους. Έτσι, επιστρέψτε αλήθεια.
  7. Εάν και οι δύο ταξινομημένες χορδές είναι διαφορετικές, αυτό σημαίνει ότι δεν είναι αναγράμματα μεταξύ τους. Έτσι, επιστρέψτε ψευδές.

Σχετίζεται με: Πώς να ελέγξετε εάν μια συμβολοσειρά είναι ένα Palindrome

Πρόγραμμα C ++ για να ελέγξετε εάν δύο χορδές είναι αναγράμματα μεταξύ τους

Ακολουθεί το πρόγραμμα C ++ για να ελέγξετε αν δύο χορδές είναι αναγράμματα μεταξύ τους ή όχι:

#περιλαμβάνω 
χρησιμοποιώντας το namespace std;
bool checkAnagrams (συμβολοσειρά s1, string s2)
{
int size1 = s1.length ();
int size2 = s2.length ();
// Εάν το μήκος και των δύο χορδών δεν είναι το ίδιο,
// σημαίνει ότι δεν μπορούν να είναι αναγράμματα μεταξύ τους.
// Έτσι, επιστρέψτε ψευδές.
αν (μέγεθος1! = μέγεθος2)
{
επιστροφή ψευδής?
}
ταξινόμηση (s1.begin (), s1.end ());
ταξινόμηση (s2.begin (), s2.end ());
για (int i = 0; {
αν (s1 [i]! = s2 [i])
{
επιστροφή ψευδής?
}
}
επιστροφή αληθινή?
}
int main ()
{
string s1 = "ακρόαση";
string s2 = "σιωπηλό";
cout << "String 1:" << s1 << endl;
cout << "String 2:" << s2 << endl;
εάν (checkAnagrams (s1, s2))
{
<< "Ναι, οι δύο χορδές είναι αναγράμματα μεταξύ τους" << endl;
}
αλλού
{
<< "Όχι, οι δύο χορδές δεν είναι αναγράμματα μεταξύ τους" << endl;
}
string s3 = "Καλώς ήλθατε στο MUO";
string s4 = "MUO to Welcome";
cout << "String 3:" << s3 << endl;
cout << "String 4:" << s4 << endl;
εάν (checkAnagrams (s3, s4))
{
<< "Ναι, οι δύο χορδές είναι αναγράμματα μεταξύ τους" << endl;
}
αλλού
{
<< "Όχι, οι δύο χορδές δεν είναι αναγράμματα μεταξύ τους" << endl;
}
string s5 = "Ο Peter Piper διάλεξε ένα κομμάτι πιπεριών τουρσί";
string s6 = "Ένα ράμφη από τουρσί πιπέρι Peter Piper πήρε";
cout << "String 5:" << s5 << endl;
cout << "String 6:" << s6 << endl;
εάν (checkAnagrams (s5, s6))
{
<< "Ναι, οι δύο χορδές είναι αναγράμματα μεταξύ τους" << endl;
}
αλλού
{
<< "Όχι, οι δύο χορδές δεν είναι αναγράμματα μεταξύ τους" << endl;
}
string s7 = "Πωλεί κοχύλια δίπλα στην παραλία";
string s8 = "κοχύλια δίπλα στην παραλία";
cout << "String 7:" << s7 << endl;
cout << "String 8:" << s8 << endl;
εάν (checkAnagrams (s7, s8))
{
<< "Ναι, οι δύο χορδές είναι αναγράμματα μεταξύ τους" << endl;
}
αλλού
{
<< "Όχι, οι δύο χορδές δεν είναι αναγράμματα μεταξύ τους" << endl;
}
string s9 = "δημιουργικό";
string s10 = "αντιδραστικό";
cout << "String 9:" << s9 << endl;
cout << "String 10:" << s10 << endl;
εάν (checkAnagrams (s9, s10))
{
<< "Ναι, οι δύο χορδές είναι αναγράμματα μεταξύ τους" << endl;
}
αλλού
{
<< "Όχι, οι δύο χορδές δεν είναι αναγράμματα μεταξύ τους" << endl;
}
επιστροφή 0;
}

Παραγωγή:

Συμβολοσειρά 1: ακούστε
Συμβολοσειρά 2: σιωπηλή
Ναι, οι δύο χορδές είναι αναγράμματα μεταξύ τους
Συμβολοσειρά 3: Καλώς ήλθατε στο MUO
Συμβολοσειρά 4: MUO to Welcome
Ναι, οι δύο χορδές είναι αναγράμματα μεταξύ τους
Σειρά 5: Ο Peter Piper διάλεξε ένα κομμάτι πιπεριών τουρσί
Συμβολοσειρά 6: Ένα κομμάτι πιπεριών τουρσί που πήρε ο Peter Piper
Όχι, οι δύο χορδές δεν είναι αναγράμματα μεταξύ τους
String 7: Πωλεί κοχύλια δίπλα στην παραλία
Σειρά 8: κοχύλια δίπλα στην παραλία
Όχι, οι δύο χορδές δεν είναι αναγράμματα μεταξύ τους
Συμβολοσειρά 9: δημιουργική
Συμβολοσειρά 10: αντιδραστικό
Ναι, οι δύο χορδές είναι αναγράμματα μεταξύ τους

Σχετίζεται με: Πώς να μετρήσετε τις εμφανίσεις ενός δεδομένου χαρακτήρα σε μια συμβολοσειρά

Πρόγραμμα Python για να ελέγξετε εάν δύο χορδές είναι αναγράμματα μεταξύ τους

Ακολουθεί το πρόγραμμα Python για να ελέγξετε αν δύο χορδές είναι αναγράμματα μεταξύ τους ή όχι:

def checkAnagrams (s1, s2):
μέγεθος1 = len (s1)
μέγεθος2 = len (s2)
# Εάν το μήκος και των δύο χορδών δεν είναι το ίδιο,
# σημαίνει ότι δεν μπορούν να είναι αναγράμματα μεταξύ τους.
# Έτσι, επιστρέψτε ψευδές.
αν μέγεθος1! = μέγεθος2:
επιστροφή 0
s1 = ταξινομημένο (s1)
s2 = ταξινομημένο (s2)
για i στην περιοχή (0, size1):
αν s1 [i]! = s2 [i]:
επιστροφή False
επιστροφή Αληθινή
s1 = "άκουσμα"
s2 = "σιωπηλός"
εκτύπωση ("Συμβολοσειρά 1:", s1)
εκτύπωση ("String 2:", s2)
εάν (checkAnagrams (s1, s2)):
εκτύπωση ("Ναι, οι δύο χορδές είναι αναγράμματα μεταξύ τους")
αλλού:
εκτύπωση ("Όχι, οι δύο χορδές δεν είναι αναγράμματα μεταξύ τους")
s3 = "Καλώς ήλθατε στο MUO"
s4 = "MUO για καλωσόρισμα"
εκτύπωση ("String 3:", s3)
εκτύπωση ("String 4:", s4)
εάν (checkAnagrams (s3, s4)):
εκτύπωση ("Ναι, οι δύο χορδές είναι αναγράμματα μεταξύ τους")
αλλού:
εκτύπωση ("Όχι, οι δύο χορδές δεν είναι αναγράμματα μεταξύ τους")
s5 = "Ο Peter Piper διάλεξε ένα κομμάτι πιπεριών τουρσί"
s6 = "Ένα ράμφη από τουρσί πιπέρι Πίτερ Πίπερ πήρε"
εκτύπωση ("String 5:", s5)
εκτύπωση ("Συμβολοσειρά 6:", s6)
εάν (checkAnagrams (s5, s6)):
εκτύπωση ("Ναι, οι δύο χορδές είναι αναγράμματα μεταξύ τους")
αλλού:
εκτύπωση ("Όχι, οι δύο χορδές δεν είναι αναγράμματα μεταξύ τους")
s7 = "Πωλεί κοχύλια δίπλα στην παραλία"
s8 = "κοχύλια δίπλα στην παραλία"
εκτύπωση ("String 7:", s7)
εκτύπωση ("String 8:", s8)
εάν (checkAnagrams (s7, s8)):
εκτύπωση ("Ναι, οι δύο χορδές είναι αναγράμματα μεταξύ τους")
αλλού:
εκτύπωση ("Όχι, οι δύο χορδές δεν είναι αναγράμματα μεταξύ τους")
s9 = "δημιουργικό"
s10 = "αντιδραστικό"
εκτύπωση ("String 9:", s9)
εκτύπωση ("String 10:", s10)
εάν (checkAnagrams (s9, s10)):
εκτύπωση ("Ναι, οι δύο χορδές είναι αναγράμματα μεταξύ τους")
αλλού:
εκτύπωση ("Όχι, οι δύο χορδές δεν είναι αναγράμματα μεταξύ τους")

Παραγωγή:

Συμβολοσειρά 1: ακούστε
Συμβολοσειρά 2: σιωπηλή
Ναι, οι δύο χορδές είναι αναγράμματα μεταξύ τους
Συμβολοσειρά 3: Καλώς ήλθατε στο MUO
Συμβολοσειρά 4: MUO to Welcome
Ναι, οι δύο χορδές είναι αναγράμματα μεταξύ τους
Σειρά 5: Ο Peter Piper διάλεξε ένα κομμάτι πιπεριών τουρσί
Συμβολοσειρά 6: Ένα κομμάτι πιπεριών τουρσί που πήρε ο Peter Piper
Όχι, οι δύο χορδές δεν είναι αναγράμματα μεταξύ τους
String 7: Πωλεί κοχύλια δίπλα στην παραλία
Σειρά 8: κοχύλια δίπλα στην παραλία
Όχι, οι δύο χορδές δεν είναι αναγράμματα μεταξύ τους
Συμβολοσειρά 9: δημιουργική
Συμβολοσειρά 10: αντιδραστικό
Ναι, οι δύο χορδές είναι αναγράμματα μεταξύ τους

Σχετίζεται με: Πώς να βρείτε φωνήεντα, σύμφωνα, ψηφία και ειδικούς χαρακτήρες σε μια συμβολοσειρά

Ελέγξτε εάν δύο χορδές είναι αναγράμματα μεταξύ τους σε JavaScript

Ακολουθεί το πρόγραμμα JavaScript για να ελέγξετε αν δύο χορδές είναι αναγράμματα μεταξύ τους ή όχι:

λειτουργία ελέγχουAnagrams (s1, s2) {
ας το μέγεθος1 = s1. μήκος;
ας μέγεθος2 = s2. μήκος;
// Εάν το μήκος και των δύο χορδών δεν είναι το ίδιο,
// σημαίνει ότι δεν μπορούν να είναι αναγράμματα μεταξύ τους.
// Έτσι, επιστρέψτε ψευδές.
αν (μέγεθος1! = μέγεθος2)
{
επιστροφή ψευδής?
}
s1. ταξινόμηση ();
s2. ταξινόμηση ();
για (let i = 0; {
αν (s1 [i]! = s2 [i])
{
επιστροφή ψευδής?
}
}
επιστροφή αληθινή?
}
var s1 = "ακρόαση";
var s2 = "σιωπηλός";
document.write ("Συμβολοσειρά 1:" + s1 + "
");
document.write ("Συμβολοσειρά 2:" + s2 + "
");
εάν (checkAnagrams (s1.split (""), s2.split (""))) {
document.write ("Ναι, οι δύο χορδές είναι αναγράμματα μεταξύ τους" + "
");
} αλλιώς {
document.write ("Όχι, οι δύο χορδές δεν είναι αναγράμματα μεταξύ τους" + "
");
}
var s3 = "Καλώς ήλθατε στο MUO";
var s4 = "MUO για καλωσόρισμα";
document.write ("Συμβολοσειρά 3:" + s3 + "
");
document.write ("Συμβολοσειρά 4:" + s4 + "
");
εάν (checkAnagrams (s3.split (""), s4.split (""))) {
document.write ("Ναι, οι δύο χορδές είναι αναγράμματα μεταξύ τους" + "
");
} αλλιώς {
document.write ("Όχι, οι δύο χορδές δεν είναι αναγράμματα μεταξύ τους" + "
");
}
var s5 = "Ο Peter Piper διάλεξε ένα κομμάτι από τουρσί πιπεριές";
var s6 = "Ένα ράμφη τουρσί πιπέρι Πίτερ Πίπερ πήρε";
document.write ("Συμβολοσειρά 5:" + s5 + "
");
document.write ("Συμβολοσειρά 6:" + s6 + "
");
εάν (checkAnagrams (s5.split (""), s6.split (""))) {
document.write ("Ναι, οι δύο χορδές είναι αναγράμματα μεταξύ τους" + "
");
} αλλιώς {
document.write ("Όχι, οι δύο χορδές δεν είναι αναγράμματα μεταξύ τους" + "
");
}
var s7 = "Πωλεί κοχύλια δίπλα στην παραλία";
var s8 = "κοχύλια δίπλα στην παραλία";
document.write ("Συμβολοσειρά 7:" + s7 + "
");
document.write ("Συμβολοσειρά 8:" + s8 + "
");
εάν (checkAnagrams (s7.split (""), s8.split (""))) {
document.write ("Ναι, οι δύο χορδές είναι αναγράμματα μεταξύ τους" + "
");
} αλλιώς {
document.write ("Όχι, οι δύο χορδές δεν είναι αναγράμματα μεταξύ τους" + "
");
}
var s9 = "δημιουργικό";
var s10 = "αντιδραστικό";
document.write ("Συμβολοσειρά 9:" + s9 + "
");
document.write ("Συμβολοσειρά 10:" + s10 + "
");
εάν (checkAnagrams (s9.split (""), s10.split (""))) {
document.write ("Ναι, οι δύο χορδές είναι αναγράμματα μεταξύ τους" + "
");
} αλλιώς {
document.write ("Όχι, οι δύο χορδές δεν είναι αναγράμματα μεταξύ τους" + "
");
}

Παραγωγή:

Συμβολοσειρά 1: ακούστε
Συμβολοσειρά 2: σιωπηλή
Ναι, οι δύο χορδές είναι αναγράμματα μεταξύ τους
Συμβολοσειρά 3: Καλώς ήλθατε στο MUO
Συμβολοσειρά 4: MUO to Welcome
Ναι, οι δύο χορδές είναι αναγράμματα μεταξύ τους
Σειρά 5: Ο Peter Piper διάλεξε ένα κομμάτι πιπεριών τουρσί
Συμβολοσειρά 6: Ένα κομμάτι πιπεριών τουρσί που πήρε ο Peter Piper
Όχι, οι δύο χορδές δεν είναι αναγράμματα μεταξύ τους
String 7: Πωλεί κοχύλια δίπλα στην παραλία
Σειρά 8: κοχύλια δίπλα στην παραλία
Όχι, οι δύο χορδές δεν είναι αναγράμματα μεταξύ τους
Συμβολοσειρά 9: δημιουργική
Συμβολοσειρά 10: αντιδραστικό
Ναι, οι δύο χορδές είναι αναγράμματα μεταξύ τους

Σχετίζεται με: Πώς βρίσκετε την τιμή ASCII ενός χαρακτήρα;

Χρησιμοποιήστε τους σωστούς πόρους για να μάθετε να κωδικοποιείτε

Εάν θέλετε να ενισχύσετε τις δεξιότητές σας στην κωδικοποίηση, είναι σημαντικό να μάθετε νέες ιδέες και να αφιερώσετε χρόνο στη χρήση τους. Ένας τρόπος για να το κάνετε αυτό είναι με εφαρμογές προγραμματισμού, οι οποίες θα σας βοηθήσουν να μάθετε διαφορετικές έννοιες προγραμματισμού ενώ διασκεδάζετε ταυτόχρονα.

Μερίδιο
ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ
8 εφαρμογές που θα σας βοηθήσουν να μάθετε να κωδικοποιείτε για την Ημέρα των Διεθνών Προγραμματιστών

Θέλετε να βελτιώσετε τις δεξιότητές σας στην κωδικοποίηση; Αυτές οι εφαρμογές και οι ιστότοποι θα σας βοηθήσουν να μάθετε τον προγραμματισμό με τον δικό σας ρυθμό.

Διαβάστε Επόμενο

Σχετικά θέματα
  • Προγραμματισμός
  • JavaScript
  • Πύθων
  • Προγραμματισμός Γ
Σχετικά με τον Συγγραφέα
Yuvraj Chandra (Δημοσιεύθηκαν 43 άρθρα)

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

Περισσότερα από τον Yuvraj Chandra

Εγγραφείτε στο newsletter μας

Εγγραφείτε στο ενημερωτικό δελτίο μας για τεχνικές συμβουλές, κριτικές, δωρεάν ebook και αποκλειστικές προσφορές!

Κάντε κλικ εδώ για να εγγραφείτε