Takip et

LeetCode 151: JavaScript ile Bir String’deki Kelimeleri Ters Çevirme

LeetCode 151: JavaScript ile Bir String’deki Kelimeleri Ters Çevirme

Merhaba! Bugün, LeetCode’un popüler bir sorunu olan “151. Reverse Words in a String” (Bir String’deki Kelimeleri Ters Çevir) problemine JavaScript çözümü ile yakından bakacağız. Bu problem, bir string’deki kelimelerin sırasını ters çevirmeyi gerektirir. Örneğin, “the sky is blue” girdisi için çıktı “blue is sky the” olmalıdır. Bu, ilk bakışta basit gibi görünse de, bazı incelikleri ele almayı gerektirir. İşte bu zorluğun üstesinden nasıl gelebileceğimiz ve verimli bir çözüm nasıl oluşturabileceğimiz.

Problem Analizi ve Yaklaşım

Problemin temel amacı kelimeleri ters çevirmektir. Ancak, önemli bir nokta, fazladan boşlukları ele almamız gerektiğidir. Girdi string’inde birden fazla boşluk olabilir ve bunları tek bir boşluğa indirgemeli, ayrıca baştaki ve sondaki boşlukları temizlemeliyiz. Bu nedenle, özellikle JavaScript’te string manipülasyonu için verimli bir yol bulmalıyız. Çözüm için öncelikle string’i kelimelerine ayırıp, daha sonra bu kelimeleri ters sırada birleştirmeyi düşünebiliriz. Bu işlemler için JavaScript’in yerleşik fonksiyonlarını kullanabiliriz.

JavaScript Kod Çözümü

Aşağıda, problemi çözmek için yazdığım JavaScript kodunu görebilirsiniz. Bu kod, önce string’i trimleyerek baştaki ve sondaki boşlukları kaldırır. Ardından, split() fonksiyonunu kullanarak kelimeleri bir diziye ayırır. Daha sonra, reverse() fonksiyonu ile dizi ters çevrilir ve son olarak join() fonksiyonu ile kelimeler tekrar bir string olarak birleştirilir. Bu yöntem, kodun okunabilirliğini ve anlaşılırlığını artırır.


/**
 * @param {string} s
 * @return {string}
 */
var reverseWords = function(s) {
    return s.trim().split(/\s+/).reverse().join(" ");
};

Bu kodda, /\s+/ düzenli ifadesi bir veya daha fazla boşluğu temsil eder. Bu, birden fazla boşluk içeren girdiler için de doğru çalışmasını sağlar. trim() fonksiyonu, string’in başındaki ve sonundaki boşlukları siler. split() fonksiyonu, boşluklara göre string’i kelimelerine ayırır. reverse() fonksiyonu, kelime dizisini ters çevirir. Son olarak, join() fonksiyonu, kelimeleri tek bir boşlukla birleştirir.

Alternatif Yaklaşımlar ve Optimizasyonlar

Elbette, bu problem için farklı yaklaşımlar da mevcuttur. Örneğin, bir for döngüsü kullanarak string’i soldan sağa doğru işleyebilir ve kelimeleri ters sırada yeni bir string’e ekleyebilirsiniz. Ancak, bu yöntem daha karmaşık ve okuma zorluğu getirebilir. Yukarıda sunduğum çözüm, okunabilirlik ve performans açısından daha iyi bir denge sunmaktadır. Daha büyük string’ler için performansı optimize etmek isterseniz, daha gelişmiş algoritmalar veya daha düşük seviyeli işlemler kullanmayı düşünebilirsiniz, ancak bu problem için bu genellikle gereksizdir.

Sonuç

Bu makalede, LeetCode’un 151. Reverse Words in a String problemini JavaScript ile nasıl çözebileceğinizi detaylı bir şekilde açıkladım. Umarım, bu açıklama size yardımcı olmuştur. Daha fazla LeetCode çözümü ve JavaScript geliştirme ipuçları için fatihsoysal.com adresini ziyaret edebilirsiniz. Ayrıca, konu hakkında daha fazla bilgi edinmek için bu kaynağa bakabilirsiniz.

#Etiketler: LeetCode, JavaScript, String Manipulation, Reverse Words, Algoritma, Programlama, Kod Çözümü, fatihsoysal.com

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Gönder

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.
Exit mobile version