Yuvraj Chandra
E-mail

Czy twój sznurek jest palindromem? Niezależnie od tego, czy używasz języka Python, C ++ czy JavaScript, użyj jednego z tych algorytmów, aby się dowiedzieć.

O strunie mówi się, że jest palindromem, jeśli oryginalna struna i jej rewers są takie same. W tym artykule poznasz algorytm służący do określania, czy dany ciąg jest palindromem, czy nie. Dowiesz się również, jak zaimplementować ten algorytm w najpopularniejszych językach programowania, takich jak C ++, Python, C i JavaScript.

Przykłady ciągów palindromowych

Poniżej znajduje się kilka przykładów ciągów palindromowych i innych niż palindromowe:

Algorytm do określenia, czy dany ciąg jest palindromem, czy nie

Algorytmy to po prostu seria instrukcji, które są wykonywane krok po kroku, aby zrobić coś pożytecznego lub rozwiązać problem. Możesz rozwiązać problem palindromu ciągów za pomocą poniższego algorytmu:

  1. Zadeklaruj funkcję, która akceptuje dany ciąg jako parametr.
  2. instagram viewer
  3. Utwórz zmienną logiczną i ustaw ją na wartość true. Niech zmienna będzie flaga.
  4. Znajdź długość podanego ciągu. Niech będzie długość n.
  5. Przekonwertuj podany ciąg na małe litery, aby porównanie między znakami nie uwzględniało wielkości liter.
  6. Zainicjuj zmienną o niskim indeksie jako Niska i ustaw na 0.
  7. Zainicjuj zmienną o wysokim indeksie jako wysoki i ustaw go na n-1.
  8. Wykonaj następujące czynności, gdy niski jest mniejszy niż wysoki:
    • Porównaj znaki o niskim i wysokim indeksie.
    • Jeśli znaki nie pasują, ustaw flagę na fałsz i przerwij pętlę.
    • Zwiększ wartość niskiego o 1 i zmniejsz wartość wysokiego o 1.
  9. Jeśli flaga ma wartość true na końcu funkcji, oznacza to, że dany ciąg jest palindromem.
  10. Jeśli flaga ma wartość false na końcu funkcji, oznacza to, że dany ciąg nie jest palindromem.

Program w C ++ do sprawdzania, czy dany ciąg jest palindromem, czy nie

Poniżej znajduje się implementacja C ++ do określenia, czy dany ciąg jest palindromem, czy nie:

// W tym biblioteki
#zawierać
using namespace std;
// Funkcja sprawdzająca palindrom ciągów
void checkPalindrome (string str)
{
// Flaga, aby sprawdzić, czy dany ciąg jest palindromem
bool flag = true;
// Znalezienie długości łańcucha
int n = str.length ();
// Konwersja ciągu na małe litery
for (int i = 0; i {
str [i] = tolower (str [i]);
}
// Inicjalizacja zmiennej o niskim indeksie
int low = 0;
// Inicjalizacja zmiennej o wysokim indeksie
int high = n-1;
// Uruchamianie pętli do momentu, gdy wysoki jest większy niż niski
podczas gdy (wysoka> niska)
{
// Jeśli znaki nie są takie same, ustaw flagę na false
// i zerwij z pętli
if (str [high]! = str [low])
{
flag = false;
złamać;
}
// Zwiększ zmienną o niskim indeksie
niski ++;
// Zmniejsz zmienną o wysokim indeksie
wysoki--;
}
// Sprawdź, czy flaga jest prawdziwa czy fałszywa
if (flaga)
{
cout << "Tak, podany ciąg jest palindromem" << endl;
}
jeszcze
{
cout << "Nie, podany łańcuch nie jest palindromem" << endl;
}
powrót;
}
int main ()
{
// Przypadek testowy: 1
string str1 = "MUO";
checkPalindrome (str1);
// Przypadek testowy: 2
string str2 = "pani";
checkPalindrome (str2);
// Przypadek testowy: 3
string str3 = "MAKEUSEOF";
checkPalindrome (str3);
// Przypadek testowy: 4
string str4 = "samochód wyścigowy";
checkPalindrome (str4);
// Przypadek testowy: 5
string str5 = "mama";
checkPalindrome (str5);
return 0;
}

Wynik:

Nie, podany ciąg nie jest palindromem 
Tak, podany ciąg jest palindromem
Nie, podany ciąg nie jest palindromem
Tak, podany ciąg jest palindromem
Tak, podany ciąg jest palindromem

Program w Pythonie do sprawdzenia, czy dany ciąg jest palindromem, czy nie

Poniżej znajduje się implementacja Pythona do określenia, czy dany ciąg jest palindromem, czy nie:

# Funkcja sprawdzająca palindrom ciągów
def checkPalindrome (str):
# Flaga do sprawdzenia, czy podany łańcuch jest palindromem
flaga = prawda
# Znalezienie długości łańcucha
n = len (str)
# Konwersja ciągu na małe litery
str = str.lower ()
# Inicjalizacja zmiennej o niskim indeksie
niski = 0
# Inicjalizacja zmiennej o wysokim indeksie
high = n-1
# Uruchamianie pętli do momentu, gdy wysoki jest większy niż niski
podczas gdy wysoka> niska:
# Jeśli znaki nie są takie same, ustaw flagę na false
# i zerwij z pętli
if str [high]! = str [low]:
flag = fałsz
złamać
# Zwiększ zmienną o niskim indeksie
niski = niski + 1
# Zmniejsz zmienną o wysokim indeksie
high = high - 1
# Sprawdź, czy flaga jest prawdziwa czy fałszywa
jeśli flaga:
print ("Tak, podany ciąg jest palindromem")
jeszcze:
print ("Nie, podany ciąg nie jest palindromem")
# Przypadek testowy: 1
str1 = "MUO"
checkPalindrome (str1)
# Przypadek testowy: 2
str2 = "pani"
checkPalindrome (str2)
# Przypadek testowy: 3
str3 = "WYKONAJ"
checkPalindrome (str3)
# Przypadek testowy: 4
str4 = "samochód wyścigowy"
checkPalindrome (str4)
# Przypadek testowy: 5
str5 = "mama"
checkPalindrome (str5)

Wynik:

Nie, podany ciąg nie jest palindromem
Tak, podany ciąg jest palindromem
Nie, podany ciąg nie jest palindromem
Tak, podany ciąg jest palindromem
Tak, podany ciąg jest palindromem

Program w C do sprawdzenia, czy dany ciąg jest palindromem, czy nie

Poniżej znajduje się implementacja C do określenia, czy dany ciąg jest palindromem, czy nie:

// W tym biblioteki
#zawierać
#zawierać
#zawierać
#zawierać
// Funkcja sprawdzająca palindrom ciągów
void checkPalindrome (char str [])
{
// Flaga, aby sprawdzić, czy dany ciąg jest palindromem
bool flag = true;
// Znalezienie długości łańcucha
int n = strlen (str);
// Konwersja ciągu na małe litery
for (int i = 0; i {
str [i] = tolower (str [i]);
}
// Inicjalizacja zmiennej o niskim indeksie
int low = 0;
// Inicjalizacja zmiennej o wysokim indeksie
int high = n-1;
// Uruchamianie pętli do momentu, gdy wysoki jest większy niż niski
podczas gdy (wysoka> niska)
{
// Jeśli znaki nie są takie same, ustaw flagę na false
// i zerwij z pętli
if (str [high]! = str [low])
{
flag = false;
złamać;
}
// Zwiększ zmienną o niskim indeksie
niski ++;
// Zmniejsz zmienną o wysokim indeksie
wysoki--;
}
// Sprawdź, czy flaga jest prawdziwa czy fałszywa
if (flaga)
{
printf ("Tak, podany ciąg jest palindromem \ ⁠n");
}
jeszcze
{
printf ("Nie, podany ciąg nie jest palindromem \ ⁠n");
}
powrót;
}
int main ()
{
// Przypadek testowy: 1
char str1 [] = "MUO";
checkPalindrome (str1);
// Przypadek testowy: 2
char str2 [] = "pani";
checkPalindrome (str2);
// Przypadek testowy: 3
char str3 [] = "MAKEUSEOF";
checkPalindrome (str3);
// Przypadek testowy: 4
char str4 [] = "samochód wyścigowy";
checkPalindrome (str4);
// Przypadek testowy: 5
char str5 [] = "mama";
checkPalindrome (str5);
return 0;
}

Wynik:

Nie, podany ciąg nie jest palindromem 
Tak, podany ciąg jest palindromem
Nie, podany ciąg nie jest palindromem
Tak, podany ciąg jest palindromem
Tak, podany ciąg jest palindromem

Program JavaScript do sprawdzania, czy dany ciąg jest palindromem, czy nie

Poniżej znajduje się implementacja JavaScript do określenia, czy dany ciąg jest palindromem, czy nie:

// Funkcja sprawdzająca palindrom ciągów
function checkPalindrome (str) {
// Flaga, aby sprawdzić, czy dany ciąg jest palindromem
var flag = true;
// Znalezienie długości łańcucha
var n = str.length;
// Konwersja ciągu na małe litery
str = str.toLowerCase ();
// Inicjalizacja zmiennej o niskim indeksie
var low = 0;
// Inicjalizacja zmiennej o wysokim indeksie
var high = n-1;
// Uruchamianie pętli do momentu, gdy wysoki jest większy niż niski
while (high> low) {
// Jeśli znaki nie są takie same, ustaw flagę na false
// i zerwij z pętli
if (str [high]! = str [low]) {
flag = false;
złamać;
}
// Zwiększ zmienną o niskim indeksie
niski ++;
// Zmniejsz zmienną o wysokim indeksie
wysoki--;
}
// Sprawdź, czy flaga jest prawdziwa czy fałszywa
if (flag) {
console.log ("Tak, podany ciąg jest palindromem");
} else {
console.log ("Nie, podany ciąg nie jest palindromem");
}
}
// Przypadek testowy: 1
var str1 = "MUO";
checkPalindrome (str1);
// Przypadek testowy: 2
var str2 = "pani";
checkPalindrome (str2);
// Przypadek testowy: 3
var str3 = "WYKONAJ";
checkPalindrome (str3);
// Przypadek testowy: 4
var str4 = "samochód wyścigowy";
checkPalindrome (str4);
// Przypadek testowy: 5
var str5 = "mama";
checkPalindrome (str5);

Wynik:

Nie, podany ciąg nie jest palindromem
Tak, podany ciąg jest palindromem
Nie, podany ciąg nie jest palindromem
Tak, podany ciąg jest palindromem
Tak, podany ciąg jest palindromem

Dowiedz się, jak radzić sobie ze stringami w programowaniu

Praca z napisami jest integralną częścią programowania. Musisz wiedzieć, jak używać i manipulować ciągami znaków w dowolnym języku programowania, takim jak Python, JavaScript, C ++ itp.

Jeśli szukasz języka na początek, Python to doskonały wybór.

E-mail
Uczysz się Pythona? Oto jak manipulować ciągami znaków

Używanie ciągów znaków i manipulowanie nimi w Pythonie może wydawać się trudne, ale jest to zwodniczo proste.

Czytaj dalej

Powiązane tematy
  • Programowanie
  • Samouczki kodowania
O autorze
Yuvraj Chandra (13 opublikowanych artykułów)

Yuvraj jest studentem informatyki na Uniwersytecie w Delhi w Indiach. Jest pasjonatem tworzenia stron internetowych Full Stack. Kiedy nie pisze, zgłębia głębię różnych technologii.

Więcej od dostawcy Yuvraj Chandra

Zapisz się do naszego newslettera

Dołącz do naszego biuletynu, aby otrzymywać wskazówki techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!

Jeszcze jeden krok…!

Potwierdź swój adres e-mail w wiadomości e-mail, którą właśnie wysłaliśmy.

.