Autorius Yuvraj Chandra
Dalintis
El

Palyginti, ar dvi teksto eilutės yra anagramos, yra puiki problemų sprendimo užduotis tobulinant programavimo įgūdžius.

Anagrama yra eilutė, suformuota pertvarkant kitos eilutės raides. Patikrinti, ar dvi stygos yra viena kitos anagramos, gali pasirodyti sunku, bet tai tik šiek tiek keblu ir apgaulingai paprasta. Šiame straipsnyje sužinosite, kaip patikrinti, ar dvi eilutės yra viena kitos anagramos, naudojant C ++, Python ir JavaScript.

Problemos pareiškimas

Jums suteiktos dvi eilutės s1 ir s2, turite patikrinti, ar abi eilutės yra viena kitos anagramos.

1 pavyzdys: Tegul s1 = "kūrybinis" ir s2 = "reaktyvus".

Kadangi antroji eilutė gali būti suformuota pertvarkant pirmosios eilutės raides ir atvirkščiai, abi eilutės yra viena kitos anagramos.

2 pavyzdys: Tegul s1 = "Peteris Piperis nuskynė marinuotų pipirų žiupsnelį" ir s2 = "Peterio pipirų nuskintas marinuotų pipirų žiupsnelis".

Kadangi antrosios eilutės negalima suformuoti pertvarkant pirmosios eilutės raides ir atvirkščiai, abi eilutės nėra viena kitos anagramos.

instagram viewer

Procesas, skirtas patikrinti, ar dvi eilutės yra viena kitos anagramos

Jei norite patikrinti, ar dvi eilutės yra viena kitos anagramos, galite laikytis toliau pateikto metodo:

  1. Palyginkite abiejų stygų ilgį.
  2. Jei abiejų stygų ilgis nevienodas, tai reiškia, kad jos negali būti viena kitos anagramos. Taigi, grąžinkite klaidingą.
  3. Jei abiejų stygų ilgis yra vienodas, tęskite toliau.
  4. Rūšiuoti abi eilutes.
  5. Palyginkite abi surūšiuotas eilutes.
  6. Jei abi rūšiuojamos eilutės yra vienodos, tai reiškia, kad jos yra viena kitos anagramos. Taigi, grįžk tiesa.
  7. Jei abi rūšiuojamos eilutės skiriasi, tai reiškia, kad jos nėra viena kitos anagramos. Taigi, grąžinkite klaidingą.

Susijęs: Kaip patikrinti, ar stygos yra palindromas

C ++ programa, skirta patikrinti, ar dvi eilutės yra viena kitos anagramos

Žemiau pateikiama C ++ programa, skirta patikrinti, ar dvi eilutės yra viena kitos anagramos, ar ne:

# įtraukti 
naudojant vardų sritį std;
„Bool“ tikrinimas „Anagrams“ (eilutė s1, eilutė s2)
{
int dydis1 = s1.length ();
int dydis2 = s2.ilgis ();
// Jei abiejų stygų ilgis nėra tas pats,
// tai reiškia, kad jie negali būti vienas kito anagramai.
// Taigi, grąžinkite klaidingą.
jei (dydis1! = dydis2)
{
grąžinti klaidingą;
}
rūšiuoti (s1.begin (), s1.end ());
rūšiuoti (s2.begin (), s2.end ());
už (int i = 0; i {
jei (s1 [i]! = s2 [i])
{
grąžinti klaidingą;
}
}
grįžti tiesa;
}
int main ()
{
eilutė s1 = "klausytis";
eilutė s2 = "tyli";
cout << "1 eilutė:" << s1 << endl;
cout << "2 eilutė:" << s2 << endl;
jei (patikrinkite „Anagrams“ (s1, s2))
{
cout << "Taip, dvi stygos yra viena kitos anagramos" << endl;
}
Kitas
{
cout << "Ne, dvi stygos nėra viena kitos anagramos" << endl;
}
string s3 = "Sveiki atvykę į MUO";
string s4 = "MUO pasveikinti";
cout << "3 eilutė:" << s3 << endl;
cout << "4 eilutė:" << s4 << endl;
jei (patikrinkite „Anagrams“ (s3, s4))
{
cout << "Taip, dvi stygos yra viena kitos anagramos" << endl;
}
Kitas
{
cout << "Ne, dvi stygos nėra viena kitos anagramos" << endl;
}
string s5 = "Peteris Piperis pasiėmė raugintų pipirų žievelę";
string s6 = "Peterio Piperio nuskintas marinuotų pipirų gabalas";
cout << "5 eilutė:" << s5 << endl;
cout << "6 eilutė:" << s6 << endl;
jei (patikrinkite „Anagrams“ (s5, s6))
{
cout << "Taip, dvi stygos yra viena kitos anagramos" << endl;
}
Kitas
{
cout << "Ne, dvi stygos nėra viena kitos anagramos" << endl;
}
string s7 = "Ji parduoda kriaukles prie juros";
string s8 = "jūros kriauklės prie jūros";
cout << "7 eilutė:" << s7 << endl;
cout << "8 eilutė:" << s8 << endl;
jei (patikrinkite „Anagrams“ (s7, s8))
{
cout << "Taip, dvi stygos yra viena kitos anagramos" << endl;
}
Kitas
{
cout << "Ne, dvi stygos nėra viena kitos anagramos" << endl;
}
eilutė s9 = „kūrybinė“;
eilutė s10 = "reaktyvi";
cout << "9 eilutė:" << s9 << endl;
cout << "10 eilutė:" << s10 << endl;
jei (patikrinkite „Anagrams“ (s9, s10))
{
cout << "Taip, dvi stygos yra viena kitos anagramos" << endl;
}
Kitas
{
cout << "Ne, dvi stygos nėra viena kitos anagramos" << endl;
}
grąžinti 0;
}

Išvestis:

1 eilutė: klausyk
2 eilutė: tyli
Taip, dvi stygos yra viena kitos anagramos
3 eilutė: Sveiki atvykę į MUO
4 eilutė: MUO pasveikinti
Taip, dvi stygos yra viena kitos anagramos
5 eilutė: Peteris Piperis pasiėmė raugintų pipirų žiupsnį
6 eilutė: Peterio Piperio nuskintas marinuotų pipirų gabalėlis
Ne, dvi stygos nėra viena kitos anagramos
7 eilutė: ji parduoda kriaukles prie jūros
8 eilutė: kriauklės prie jūros kranto
Ne, dvi stygos nėra viena kitos anagramos
9 eilutė: kūrybinė
10 eilutė: reaktyvi
Taip, dvi stygos yra viena kitos anagramos

Susijęs: Kaip suskaičiuoti duoto simbolio atsiradimą eilutėje

„Python“ programa, skirta patikrinti, ar dvi eilutės yra viena kitos anagramos

Žemiau pateikiama „Python“ programa, skirta patikrinti, ar dvi eilutės yra viena kitos anagramos, ar ne:

def patikrinimasAnagramos (s1, s2):
dydis1 = len (s1)
size2 = len (s2)
# Jei abiejų stygų ilgis nėra tas pats,
# tai reiškia, kad jie negali būti vienas kito anagramos.
# Taigi, grąžinkite klaidingą.
jei dydis1! = dydis2:
grąžinti 0
s1 = rūšiuojamas (s1)
s2 = rūšiuojamas (s2)
i diapazone (0, dydis1):
jei s1 [i]! = s2 [i]:
grąžinti False
grįžti Tiesa
s1 = "klausyk"
s2 = "tylus"
spausdinti ("1 eilutė:", s1)
spausdinti ("2 eilutė:", s2)
jei (patikrinkite „Anagrams“ (s1, s2)):
spausdinti („Taip, dvi eilutės yra viena kitos anagramos“)
Kitas:
spausdinti ("Ne, dvi eilutės nėra viena kitos anagramos")
s3 = "Sveiki atvykę į MUO"
s4 = "MUO pasveikinti"
spausdinti („3 eilutė:“, s3)
spausdinti („4 eilutė:“, s4)
jei (patikrinkite „Anagrams“ (s3, s4)):
spausdinti („Taip, dvi eilutės yra viena kitos anagramos“)
Kitas:
spausdinti ("Ne, dvi eilutės nėra viena kitos anagramos")
s5 = "Peteris Piperis pasiėmė raugintų pipirų žiupsnelį"
s6 = "Peterio Piperio nuskintas marinuotų pipirų gabalas"
spausdinti ("5 eilutė:", s5)
spausdinti („6 eilutė:“, s6)
jei (patikrinkite „Anagrams“ (s5, s6)):
spausdinti („Taip, dvi eilutės yra viena kitos anagramos“)
Kitas:
spausdinti ("Ne, dvi eilutės nėra viena kitos anagramos")
s7 = "Ji parduoda kriaukles prie jūros"
s8 = "jūros kriauklės prie jūros"
spausdinti („7 eilutė:“, s7)
spausdinti („8 eilutė:“, s8)
jei (patikrinkite „Anagrams“ (s7, s8)):
spausdinti („Taip, dvi eilutės yra viena kitos anagramos“)
Kitas:
spausdinti ("Ne, dvi eilutės nėra viena kitos anagramos")
s9 = „kūrybinis“
s10 = "reaktyvus"
spausdinti („9 eilutė:“, s9)
spausdinti („10 eilutė:“, s10)
jei (patikrinkite „Anagrams“ (s9, s10)):
spausdinti („Taip, dvi eilutės yra viena kitos anagramos“)
Kitas:
spausdinti ("Ne, dvi eilutės nėra viena kitos anagramos")

Išvestis:

1 eilutė: klausyk
2 eilutė: tyli
Taip, dvi stygos yra viena kitos anagramos
3 eilutė: Sveiki atvykę į MUO
4 eilutė: MUO pasveikinti
Taip, dvi stygos yra viena kitos anagramos
5 eilutė: Peteris Piperis pasiėmė raugintų pipirų žiupsnį
6 eilutė: Peterio Piperio nuskintas marinuotų pipirų gabalėlis
Ne, dvi stygos nėra viena kitos anagramos
7 eilutė: ji parduoda kriaukles prie jūros
8 eilutė: kriauklės prie jūros kranto
Ne, dvi stygos nėra viena kitos anagramos
9 eilutė: kūrybinė
10 eilutė: reaktyvi
Taip, dvi stygos yra viena kitos anagramos

Susijęs: Kaip eilutėje rasti balsius, priebalsius, skaitmenis ir specialiuosius simbolius

Patikrinkite, ar „JavaScript“ dvi eilutės yra viena kitos anagramos

Žemiau yra „JavaScript“ programa, skirta patikrinti, ar dvi eilutės yra viena kitos anagramos, ar ne:

funkcijos patikrinimasAnagramos (s1, s2) {
tegul dydis1 = s1.ilgis;
tegul dydis2 = s2.ilgis;
// Jei abiejų stygų ilgis nėra tas pats,
// tai reiškia, kad jie negali būti vienas kito anagramai.
// Taigi, grąžinkite klaidingą.
jei (dydis1! = dydis2)
{
grąžinti klaidingą;
}
s1.rūšiuoti ();
s2.rūšiuoti ();
už (tegul i = 0; i {
jei (s1 [i]! = s2 [i])
{
grąžinti klaidingą;
}
}
grįžti tiesa;
}
var s1 = "klausytis";
var s2 = "tyli";
document.write ("1 eilutė:" + s1 + "
");
document.write ("2 eilutė:" + s2 + "
");
jei (checkAnagrams (s1.split (""), s2.split (""))) {
document.write ("Taip, dvi eilutės yra viena kitos anagramos" + "
");
} Kitas {
document.write ("Ne, dvi eilutės nėra viena kitos anagramos" + "
");
}
var s3 = "Sveiki atvykę į MUO";
var s4 = "MUO pasveikinti";
document.write ("3 eilutė:" + s3 + "
");
document.write ("4 eilutė:" + s4 + "
");
jei (checkAnagrams (s3.split (""), s4.split (""))) {
document.write ("Taip, dvi eilutės yra viena kitos anagramos" + "
");
} Kitas {
document.write ("Ne, dvi eilutės nėra viena kitos anagramos" + "
");
}
var s5 = "Peteris Piperis pasiėmė raugintų pipirų žievelę";
var s6 = "Peterio Piperio nuskintų marinuotų pipirų žiupsnelis";
document.write ("5 eilutė:" + s5 + "
");
document.write ("6 eilutė:" + s6 + "
");
jei (checkAnagrams (s5.split (""), s6.split (""))) {
document.write ("Taip, dvi eilutės yra viena kitos anagramos" + "
");
} Kitas {
document.write ("Ne, dvi eilutės nėra viena kitos anagramos" + "
");
}
var s7 = "Ji parduoda kriaukles prie pajūrio";
var s8 = "jūros kriauklės prie jūros";
document.write ("7 eilutė:" + s7 + "
");
document.write ("8 eilutė:" + s8 + "
");
jei (checkAnagrams (s7.split (""), s8.split (""))) {
document.write ("Taip, dvi eilutės yra viena kitos anagramos" + "
");
} Kitas {
document.write ("Ne, dvi eilutės nėra viena kitos anagramos" + "
");
}
var s9 = "kūryba";
var s10 = "reaktyvus";
document.write ("9 eilutė:" + s9 + "
");
document.write ("10 eilutė:" + s10 + "
");
jei (checkAnagrams (s9.split (""), s10.split (""))) {
document.write ("Taip, dvi eilutės yra viena kitos anagramos" + "
");
} Kitas {
document.write ("Ne, dvi eilutės nėra viena kitos anagramos" + "
");
}

Išvestis:

1 eilutė: klausyk
2 eilutė: tyli
Taip, dvi stygos yra viena kitos anagramos
3 eilutė: Sveiki atvykę į MUO
4 eilutė: MUO pasveikinti
Taip, dvi stygos yra viena kitos anagramos
5 eilutė: Peteris Piperis pasiėmė raugintų pipirų žiupsnį
6 eilutė: Peterio Piperio nuskintas marinuotų pipirų gabalėlis
Ne, dvi stygos nėra viena kitos anagramos
7 eilutė: ji parduoda kriaukles prie jūros
8 eilutė: kriauklės prie jūros kranto
Ne, dvi stygos nėra viena kitos anagramos
9 eilutė: kūrybinė
10 eilutė: reaktyvi
Taip, dvi stygos yra viena kitos anagramos

Susijęs: Kaip rasti personažo ASCII vertę?

Norėdami išmokti koduoti, naudokite tinkamus išteklius

Jei norite sustiprinti savo kodavimo įgūdžius, svarbu išmokti naujų sąvokų ir praleisti laiką jomis naudojantis. Vienas iš būdų tai padaryti yra programavimo programėlės, kurios padės jums išmokti skirtingų programavimo sąvokų tuo pačiu metu linksmintis.

Dalintis
El
8 programos, padėsiančios išmokti koduoti tarptautinę programuotojų dieną

Norite patobulinti savo kodavimo įgūdžius? Šios programos ir svetainės padės išmokti programuoti savo tempu.

Skaitykite toliau

Susijusios temos
  • Programavimas
  • „JavaScript“
  • „Python“
  • C programavimas
Apie autorių
Yuvraj Chandra (Paskelbti 43 straipsniai)

Yuvraj yra informatikos bakalauro studentas Delio universitete, Indijoje. Jis aistringai domisi „Full Stack“ interneto plėtra. Kai nerašo, jis tyrinėja įvairių technologijų gylį.

Daugiau iš „Yuvraj Chandra“

Užsiprenumeruokite mūsų naujienlaiškį

Prisijunkite prie mūsų naujienlaiškio, kuriame rasite techninių patarimų, apžvalgų, nemokamų el. Knygų ir išskirtinių pasiūlymų!

Norėdami užsiprenumeruoti, spustelėkite čia