Algoritmalar hakkında çok karışık olan makaleler nasıl yazılır. Son olarak, yazmaya en basit seviyeden başlamanın daha iyi olacağını düşünüyorum. Başlangıçtan itibaren, yapay zeka, makine öğrenimi algoritmaları ve çok sayıda matematik ve optimizasyon bilgisi gibi bazı ağır ağırlıklara sahip olacağım. Sanırım çok bunalıma girecek. Elbette Bunu yapamayabilirim, doğru.
Her soru için iki dilde, statik dil ve dinamik dilde çözüm vermeyi planlıyorum.
Uygulama dilleri olarak C dili, Python ve Java'yı seçiyorum.Kısıtlı alan nedeniyle, diğer dillerin uygulanmasıyla ilgilenen arkadaşlar, lütfen kendiniz deneyin.
LeetCode 953. Yabancı Sözlüğü Doğrulama
Yabancı bir dilde, İngilizce küçük harfleri de kullanmaları şaşırtıcıdır, ancak farklı bir sıra kullanabilirler. Sıra, belirli bir harf dizisidir.
Şimdi, bazı kelimelerden ve bir sıra dizisinden oluşan bir kelime dizisi verildiğinde, kelimeler tarafından verilen kelimeler sıraya göre sıralanırsa, doğru, aksi takdirde yanlış döndür.
Not:
Benim fikrim, iki bitişik kelimeyi sırayla geçmek ve önceki kelime ile sonraki kelimenin aynı konumundaki karakterlerin harf sırası kuralına göre sıralı olup olmadığını karşılaştırmaktır.
Örnek olarak yukarıdaki Örnek 2'yi ele alalım. Dünyadan ve satırdan geçiyorsanız, bunların baş harfleri sırasıyla w ve r'dir, bunlar sırasıyla 0 ve 2 alt simgelerinin konumlarındadır ve w, r'nin önündedir, dolayısıyla sıralıdırlar.
Ayrıntılı kod aşağıdaki gibidir:
Düzen, sıralamanın temelidir, onu sürekli aramamız gerekir, bu yüzden aramayı hızlandırmak için önce bir yapı oluşturmamız gerekir. Kod 2 ~ 7 satır, burada 26 uzunluğunda bir dizi tanımlıyoruz, harfi dizinin alt simgesiyle eşleştiriyoruz ve değer mektubun sıradaki konumudur.
Kod 8-20 tüm geçiş sürecidir.Öncelikle karşılaştırılacak iki dizenin uzunluğunu elde etmemiz gerekir.Karakterlerini karşılaştırırken en kısa sözcüğün uzunluğunu geçiş sınırı olarak, yani sondaki en kısa sözcüğü kullanırız Bir karakterin üzerinden geçildikten sonra, iki kelime karakterinin karşılaştırması sona erer. Geçiş devam ederse, bir taşma hatası oluşacaktır, bu nedenle burada sınırın belirlenmesi önemlidir.
Kod 13 ~ 17 satırları, mektubun sıradaki aynı pozisyondaki konumunu karşılaştırmak için iki kelime karakterinin karşılaştırmasıdır. Burada üç durum ele alınmaktadır:
19. satır, örnek3 durumuyla ilgilidir. Çapraz geçişte, seçilen geçiş uzunluğu sınırı en kısa sözcüğün uzunluğudur. İki sözcüğün karakterleri bu uzunluk içinde eşitse, kod buraya gelecektir. , Uzun sözcük öndeyse, yanlış döndürmelidir.
Python uygulaması C diline benzer.Ayrıca sorgu sırasını hızlandırmak için bir yapı inşa eden ilk kişidir.Python, doğrudan ve verimli olduğu için liste yerine doğal olarak bir sözlük kullanır.
Daha sonra, liste oluşturucu aracılığıyla her kelimeyi doğrudan bir sayı formuna kodlayın ve her sayı, sıradaki harfin alt simgesidir.
Son olarak, iki bitişik elemanı karşılaştırmak için zip kullanıyoruz.Bu yöntem aynı zamanda önceki soruda da kullanılmıştır. Python ayrıca uygun bir yere sahiptir, sıra doğrudan karşılaştırılabilir.
kod aşağıdaki gibi gösterilir:
Java uygulaması temelde C dili uygulamasıyla aynıdır.
kod aşağıdaki gibi gösterilir: