Jämföra om två textsträngar är anagram är ett stort problemlösning för att förbättra programmeringsförmågan.
Ett anagram är en sträng som bildas genom att ordna om bokstäverna i en annan sträng. Att kontrollera om två strängar är anagram över varandra kan låta svårt, men det är bara lite knepigt och bedrägligt enkelt. I den här artikeln lär du dig hur du kontrollerar om två strängar är anagram över varandra med C ++, Python och JavaScript.
Problemförklaring
Du får två strängar s1 och s2, du måste kontrollera om de två strängarna är anagram över varandra eller inte.
Exempel 1: Låt s1 = "creative" och s2 = "reactive".
Eftersom den andra strängen kan bildas genom att ordna om bokstäverna i den första strängen och vice versa, så är de två strängarna anagram över varandra.
Exempel 2: Låt s1 = "Peter Piper plockade en plock inlagd paprika" och s2 = "En peck inlagd paprika Peter Piper plockade".
Eftersom den andra strängen inte kan bildas genom att ordna om bokstäverna i den första strängen och vice versa, är de två strängarna således inte anagram över varandra.
Process för att kontrollera om två strängar är varandra
Du kan följa metoden nedan för att kontrollera om de två strängarna är anagram över varandra:
- Jämför längden på båda strängarna.
- Om längden på båda strängarna inte är densamma betyder det att de inte kan vara anagram över varandra. Återvänd alltså falskt.
- Om längden på båda strängarna är densamma, fortsätt vidare.
- Sortera båda strängarna.
- Jämför båda de sorterade strängarna.
- Om båda de sorterade strängarna är desamma betyder det att de är anagram över varandra. Således, återvänd sant.
- Om båda de sorterade strängarna är olika betyder det att de inte är anagram över varandra. Återvänd alltså falskt.
Relaterad: Hur man kontrollerar om en sträng är en palindrom
C ++ - program för att kontrollera om två strängar är varandra
Nedan följer C ++ - programmet för att kontrollera om två strängar är anagram över varandra eller inte:
#omfatta
använder namnrymd std;
bool checkAnagram (sträng s1, sträng s2)
{
int storlek1 = s1.längd ();
int storlek2 = s2.length ();
// Om längden på båda strängarna inte är densamma,
// det betyder att de inte kan vara anagram över varandra.
// Återvänd alltså falskt.
om (storlek1! = storlek2)
{
returnera falsk;
}
sortera (s1.begin (), s1.end ());
sortera (s2.begin (), s2.end ());
för (int i = 0; i {
om (s1 [i]! = s2 [i])
{
returnera falsk;
}
}
återvänd sant;
}
int main ()
{
string s1 = "lyssna";
sträng s2 = "tyst";
cout << "Sträng 1:" << s1 << endl;
cout << "String 2:" << s2 << endl;
if (checkAnagrams (s1, s2))
{
cout << "Ja, de två strängarna är varandras anagram" << endl;
}
annan
{
cout << "Nej, de två strängarna är inte anagram över varandra" << endl;
}
string s3 = "Välkommen till MUO";
string s4 = "MUO till välkomst";
cout << "String 3:" << s3 << endl;
cout << "String 4:" << s4 << endl;
if (checkAnagrams (s3, s4))
{
cout << "Ja, de två strängarna är varandras anagram" << endl;
}
annan
{
cout << "Nej, de två strängarna är inte anagram över varandra" << endl;
}
string s5 = "Peter Piper plockade en bit med inlagda paprika";
string s6 = "En plocka med inlagda paprika som Peter Piper plockade";
cout << "String 5:" << s5 << endl;
cout << "Sträng 6:" << s6 << endl;
if (checkAnagrams (s5, s6))
{
cout << "Ja, de två strängarna är varandras anagram" << endl;
}
annan
{
cout << "Nej, de två strängarna är inte anagram över varandra" << endl;
}
string s7 = "Hon säljer snäckskal vid stranden";
string s8 = "snäckskal vid stranden";
cout << "Sträng 7:" << s7 << endl;
cout << "String 8:" << s8 << endl;
if (checkAnagrams (s7, s8))
{
cout << "Ja, de två strängarna är varandras anagram" << endl;
}
annan
{
cout << "Nej, de två strängarna är inte anagram över varandra" << endl;
}
string s9 = "creative";
sträng s10 = "reaktiv";
cout << "String 9:" << s9 << endl;
cout << "Sträng 10:" << s10 << endl;
if (checkAnagrams (s9, s10))
{
cout << "Ja, de två strängarna är varandras anagram" << endl;
}
annan
{
cout << "Nej, de två strängarna är inte anagram över varandra" << endl;
}
returnera 0;
}
Produktion:
Sträng 1: lyssna
Sträng 2: tyst
Ja, de två strängarna är anagram över varandra
Sträng 3: Välkommen till MUO
String 4: MUO to Welcome
Ja, de två strängarna är anagram över varandra
Sträng 5: Peter Piper plockade en bit med inlagda paprika
Sträng 6: En plocka med inlagda paprika som Peter Piper plockade
Nej, de två strängarna är inte anagram över varandra
Sträng 7: Hon säljer snäckskal vid stranden
Sträng 8: snäckskal vid stranden
Nej, de två strängarna är inte anagram över varandra
Sträng 9: kreativ
Sträng 10: reaktiv
Ja, de två strängarna är anagram över varandra
Relaterad: Hur man räknar förekomsten av en given karaktär i en sträng
Python-programmet för att kontrollera om två strängar är anagram över varandra
Nedan är Python-programmet för att kontrollera om två strängar är anagram över varandra eller inte:
def checkAnagram (s1, s2):
storlek1 = len (s1)
storlek2 = len (s2)
# Om längden på båda strängarna inte är densamma,
# det betyder att de inte kan vara anagram över varandra.
# Återvänd alltså falskt.
om storlek1! = storlek2:
returnera 0
s1 = sorterad (s1)
s2 = sorterad (s2)
för jag inom intervallet (0, storlek1):
om s1 [i]! = s2 [i]:
återvänd Falskt
återvänd True
s1 = "lyssna"
s2 = "tyst"
tryck ("Sträng 1:", s1)
tryck ("String 2:", s2)
if (checkAnagrams (s1, s2)):
tryck ("Ja, de två strängarna är varandras anagram")
annan:
tryck ("Nej, de två strängarna är inte anagram över varandra")
s3 = "Välkommen till MUO"
s4 = "MUO till välkomst"
tryck ("String 3:", s3)
tryck ("String 4:", s4)
if (checkAnagrams (s3, s4)):
tryck ("Ja, de två strängarna är varandras anagram")
annan:
tryck ("Nej, de två strängarna är inte anagram över varandra")
s5 = "Peter Piper plockade en plocka inlagda paprika"
s6 = "En plocka med inlagda paprika som Peter Piper plockade"
tryck ("String 5:", s5)
tryck ("String 6:", s6)
if (checkAnagrams (s5, s6)):
tryck ("Ja, de två strängarna är varandras anagram")
annan:
tryck ("Nej, de två strängarna är inte anagram över varandra")
s7 = "Hon säljer snäckskal vid stranden"
s8 = "snäckskal vid stranden"
tryck ("String 7:", s7)
tryck ("String 8:", s8)
if (checkAnagrams (s7, s8)):
tryck ("Ja, de två strängarna är varandras anagram")
annan:
tryck ("Nej, de två strängarna är inte anagram över varandra")
s9 = "kreativ"
s10 = "reaktiv"
tryck ("String 9:", s9)
tryck ("String 10:", s10)
if (checkAnagrams (s9, s10)):
tryck ("Ja, de två strängarna är varandras anagram")
annan:
tryck ("Nej, de två strängarna är inte anagram över varandra")
Produktion:
Sträng 1: lyssna
Sträng 2: tyst
Ja, de två strängarna är anagram över varandra
Sträng 3: Välkommen till MUO
String 4: MUO to Welcome
Ja, de två strängarna är anagram över varandra
Sträng 5: Peter Piper plockade en bit med inlagda paprika
Sträng 6: En plocka med inlagda paprika som Peter Piper plockade
Nej, de två strängarna är inte anagram över varandra
Sträng 7: Hon säljer snäckskal vid stranden
Sträng 8: snäckskal vid stranden
Nej, de två strängarna är inte anagram över varandra
Sträng 9: kreativ
Sträng 10: reaktiv
Ja, de två strängarna är anagram över varandra
Relaterad: Hur man hittar vokaler, konsonanter, siffror och specialtecken i en sträng
Kontrollera om två strängar är anagram över varandra i JavaScript
Nedan följer JavaScript-programmet för att kontrollera om två strängar är anagram över varandra eller inte:
funktionskontrollAnagram (s1, s2) {
låt storlek1 = s1.längd;
låt storlek2 = s2.längd;
// Om längden på båda strängarna inte är densamma,
// det betyder att de inte kan vara anagram över varandra.
// Återvänd alltså falskt.
om (storlek1! = storlek2)
{
returnera falsk;
}
s1.sort ();
s2.sort ();
för (låt i = 0; i {
om (s1 [i]! = s2 [i])
{
returnera falsk;
}
}
återvänd sant;
}
var s1 = "lyssna";
var s2 = "tyst";
document.write ("Sträng 1:" + s1 + "
");
document.write ("String 2:" + s2 + "
");
if (checkAnagrams (s1.split (""), s2.split (""))) {
document.write ("Ja, de två strängarna är varandras anagram" + "
");
} annat {
document.write ("Nej, de två strängarna är inte anagram över varandra" + "
");
}
var s3 = "Välkommen till MUO";
var s4 = "MUO till välkommen";
document.write ("String 3:" + s3 + "
");
document.write ("String 4:" + s4 + "
");
if (checkAnagrams (s3.split (""), s4.split (""))) {
document.write ("Ja, de två strängarna är varandras anagram" + "
");
} annat {
document.write ("Nej, de två strängarna är inte anagram över varandra" + "
");
}
var s5 = "Peter Piper plockade en bit med inlagda paprika";
var s6 = "En plocka med inlagda paprika som Peter Piper plockade";
document.write ("String 5:" + s5 + "
");
document.write ("String 6:" + s6 + "
");
if (checkAnagrams (s5.split (""), s6.split (""))) {
document.write ("Ja, de två strängarna är varandras anagram" + "
");
} annat {
document.write ("Nej, de två strängarna är inte anagram över varandra" + "
");
}
var s7 = "Hon säljer snäckskal vid stranden";
var s8 = "snäckskal vid stranden";
document.write ("String 7:" + s7 + "
");
document.write ("String 8:" + s8 + "
");
if (checkAnagrams (s7.split (""), s8.split (""))) {
document.write ("Ja, de två strängarna är varandras anagram" + "
");
} annat {
document.write ("Nej, de två strängarna är inte anagram över varandra" + "
");
}
var s9 = "creative";
var s10 = "reaktiv";
document.write ("String 9:" + s9 + "
");
document.write ("String 10:" + s10 + "
");
if (checkAnagrams (s9.split (""), s10.split (""))) {
document.write ("Ja, de två strängarna är varandras anagram" + "
");
} annat {
document.write ("Nej, de två strängarna är inte anagram över varandra" + "
");
}
Produktion:
Sträng 1: lyssna
Sträng 2: tyst
Ja, de två strängarna är anagram över varandra
Sträng 3: Välkommen till MUO
String 4: MUO to Welcome
Ja, de två strängarna är anagram över varandra
Sträng 5: Peter Piper plockade en bit med inlagda paprika
Sträng 6: En plocka med inlagda paprika som Peter Piper plockade
Nej, de två strängarna är inte anagram över varandra
Sträng 7: Hon säljer snäckskal vid stranden
Sträng 8: snäckskal vid stranden
Nej, de två strängarna är inte anagram över varandra
Sträng 9: kreativ
Sträng 10: reaktiv
Ja, de två strängarna är anagram över varandra
Relaterad: Hur hittar du ASCII-värdet av en karaktär?
Använd rätt resurser för att lära dig att koda
Om du vill stärka dina kodfärdigheter är det viktigt att lära sig nya koncept och spendera tid på att använda dem. Ett sätt att göra detta är med programmering av appar, som hjälper dig att lära dig olika programmeringskoncept samtidigt som du har kul samtidigt.
Vill du förstärka dina kodfärdigheter? Dessa appar och webbplatser hjälper dig att lära dig programmering i din egen takt.
Läs Nästa
- Programmering
- JavaScript
- Pytonorm
- C Programmering
Yuvraj är en doktorand vid datavetenskap vid University of Delhi, Indien. Han brinner för Full Stack webbutveckling. När han inte skriver utforskar han djupet i olika tekniker.
Prenumerera på vårt nyhetsbrev
Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e-böcker och exklusiva erbjudanden!
Klicka här för att prenumerera