Prosta funkcja

0

Witam!
Męczę się z banalną funkcją z 30 minut i nic nie mogę wymyślić. Jeżeli w stringu powtarza się taki sam znak (czyli są w nim przynajmniej dwa takie same znaki) to zwraca true, jeżeli nie powtarzają się to zwraca false.
Wymyśliłem coś takiego:

 
        public bool IfRepeat(string txt)
        {            
            for (int i = 0; i < txt.Length; i++)
            {
                for (int o = i + 1; o < txt.Length + 1; o++)
                {                   
                        if (txt[i] == txt[i + o])
                        {
                            return true;
                        }                    
                }
            }
            return false;
        }

Ale nie za bardzo to działa. Ktoś ma jakiś pomysł, jak można byłoby to zmienić/poprawić/napisać inaczej? Z góry dzięki.
Pozdrawiam!

0

Twoja pętla kończy się dopiero na indeksie txt.Length, a takiego elementu nie ma.

Spróbuj tak:

 
        public bool IfRepeat(string txt)
        {            
            for (int i = 0; i < txt.Length; i++)
            {
                for (int o = i + 1; o < txt.Length; o++)
                {                   
                        if (txt[i] == txt[o])
                        {
                            return true;
                        }                    
                }
            }
            return false;
        }

1 użytkowników online, w tym zalogowanych: 0, gości: 1