Wpis z mikrobloga

bool czyPalindrom(string slowo)
{
string odwrocony;
int dlugosc = slowo.length();
for (int i = dlugosc; i >= 0; i--)
{
odwrocony += slowo[i];
}
if (odwrocony==slowo)
{
return true;
}
return false;
}

Czemu nie chce mi dodawać do stringa 'odwrocony' charów ze stringa 'slowo'? :/

#programowanie #pytanie
  • 11
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@mangojuice:
dlatego:

[System.IndexOutOfRangeException: Index was outside the bounds of the array.] at System.String.get_Chars(Int32 index) at Program.czyPalindrom(String slowo) :line 16 at Program.Main() :line 8
  • Odpowiedz
@mangojuice: długość to slowo.length()-1; Poza tym można to napisać bardziej optymalnie. Pomyśl, możesz jedną pętlą sprawdzać czy pierwsza litera słowa równa się ostaniej, druga równa się przedostatniej itp.
  • Odpowiedz
@Gilbertus: dziękuje, działa.
@JanekGreen: A co w przypadku jeśli będę chciał sprawdzać czy liczba jest palindromem, a nie będzie parzysta? Do tego chcę zaraz właśnie dojść.

@MikelThief: @Gilbertus: @JanekGreen: I mam jeszcze pytanko odnoście pętli, czemu zawsze trzeba zaczynać od 0? Nie można powiedzmy zacząć od jakiejś wartości i potem zastosować dekrementację 'i' (tzn pewnie nie mozna, dlatego mi nie działało, ale
  • Odpowiedz