by

Kısa Kısa – 1 (Metin Döndürme)

“andromeda” metninindeki karakterleri sağa kaydırdığımızda sırasıyla
“aandromed” , “daandrome” metinlerini elde ederiz.

Diyelim ki elimizde 2 adet metin var bu metinlerden birisini diğerinin kaydırılmış hali olup olmadığını nasıl tespit ederiz , daha doğrusu efektif olarak bu iş nasıl yapılır?

Şöyle yapılıyor ; döndürülmüş olduğunu varsaydığımız metninn sonuna kendisini ekliyoruz. Oluşan yeni metin içinde eğer orjinal metin varsa bu metin döndürülmüş demektir.

Örneğin; “onurbaysan” orjinal metin olsun. “baysanonur” da döndürülen metnimiz olsun. “baysan**onurbaysan**onur” metni “onurbaysan” ı içerdiği için “baysanonur” , “onurbaysan” ın döndürülmüş şeklidir diyoruz.

String text1 = “onurbaysan”; String text2 = “nurbaysano”; if (String.Concat(text2, text2).Contains(text1)) Console.WriteLine(“döndürülmüş”); else Console.WriteLine(“güzel deneme!”);

Bu kodu daha efektif hale getirmek için text1’in uzunluğu , text2’nin uzunluğundan farklı mı koşulunu eklersek kodu bir nebze daha hızlandırabiliriz.

Kaynak:
[http://stackoverflow.com/questions/2553522/interview-question-check-if-one-string-is-a-rotation-of-other-string](http://stackoverflow.com/questions/2553522/interview-question-check-if-one-string-is-a-rotation-of-other-string)