Ich habe jeden Tag LeetCode ausprobiert. 14. Längstes allgemeines Präfix (Python, Go)

Einführung

@Ishishow betreibt eine kostenlose englische Word-Site E-tan.

Ich möchte jeden Tag an Letcode arbeiten, um meine Fähigkeiten als Programmierer zu verbessern und meine eigene Art der Lösung zu finden.

Was ist Leetcode?

leetcode.com Dies ist die Praxis des Codierens von Interviews für Softwareentwickler. Insgesamt wurden mehr als 1.500 Codierungsfragen gestellt, und es scheint, dass in tatsächlichen Interviews häufig dieselben Fragen gestellt werden.

Einführung in Go Sprache + Algorithmus Ich werde es mit Golang und Python lösen, um mein Gehirn zu stärken. (Python ist schwach, aber erfahren)

5. Frage (Problem 14)

14.Longest Common Prefix

--Probleminhalt (japanische Übersetzung)

Schreiben Sie eine Funktion, die die längste gemeinsame Präfixzeichenfolge in einem Array von Zeichenfolgen findet.

Wenn es kein gemeinsames Präfix gibt, wird eine leere Zeichenfolge "" "zurückgegeben.

Example 1:

Input: strs = ["flower","flow","flight"]
Output: "fl"

Example 2:

Input: strs = ["dog","racecar","car"]
Output: ""
Explanation: There is no common prefix among the input strings.

Denkweise

  1. Extrahieren Sie das kürzeste Wort aus dem Array
  2. Schleifen Sie das Wort Zeichen für Zeichen
  3. Überprüfen Sie alle in der Schleife angezeigten Wörter und kehren Sie zurück, wenn sie unterschiedlich sind, und fahren Sie fort, wenn sie nicht unterschiedlich sind

Erläuterung

  1. Mit der Methode min können Sie das Element mit der geringsten Anzahl von Zeichen im Array abrufen.
  2. Es kann eine for-Anweisung oder irgendetwas sein.
  3. return verwendet Slices. Sie können mit dem Array [: number] innerhalb des angegebenen Bereichs schneiden.

--Antwortcode

def longestCommonPrefix(self, strs):
    """
    :type strs: List[str]
    :rtype: str
    """
    if not strs:
        return ""
    shortest = min(strs,key=len)
    for i, ch in enumerate(shortest):
        for other in strs:
            if other[i] != ch:
                return shortest[:i]
    return shortest 
func longestCommonPrefix(strs []string) string {
	if len(strs) == 0 {
		return ""
	}
	max := len(strs[0])

	for i := 0; i < max; i++ {
		b := strs[0][i]
		for _, str := range strs[1:] {
			if i == len(str) || b != str[i] {
				return strs[0][:i]
			}
		}
	}
	return strs[0]
}

Go und Python-Ausführungszeit

Von links RunTime, Speicher, Sprache. キャプチャ.PNG

Recommended Posts

Ich habe jeden Tag LeetCode ausprobiert. 14. Längstes allgemeines Präfix (Python, Go)
Ich habe jeden Tag LeetCode ausprobiert. 7. Reverse Integer (Python, Go)
Ich habe jeden Tag 20 LeetCode ausprobiert. Gültige Klammern (Python, Go)
Ich habe jeden Tag LeetCode 9 ausprobiert. Palindrome Number (Python, Go)
Ich habe jeden Tag LeetCode ausprobiert. 1. Zwei Summen (Python, Go)
Ich habe jeden Tag 13 LeetCode ausprobiert. Roman to Integer (Python, Go)
Ich habe jeden Tag LeetCode 21 ausprobiert. Zwei sortierte Listen zusammenführen (Python, Go)
Ich habe jeden Tag LeetCode ausprobiert 26. Duplikate aus sortiertem Array entfernen (Python, Go)
Ich habe es mit Grumpy versucht (Python ausführen).
Ich habe versucht, mit Python Faiss zu laufen, Go, Rust
Ich habe Python> autopep8 ausprobiert
Ich habe Python> Decorator ausprobiert
Lassen Sie Code Day47 von vorne beginnen "14. Längstes gemeinsames Präfix"
Ich habe fp-Wachstum mit Python versucht
Ich habe versucht, mit Python zu kratzen
Ich habe die C-Erweiterung von Python ausprobiert
Ich habe gRPC mit Python ausprobiert
Ich habe versucht, mit Python zu kratzen
Ich habe versucht, Python zu berühren (Installation)
Ich habe versucht, WebScraping mit Python.
Ich habe versucht, Thonny (Python / IDE) zu verwenden.
Ich habe versucht, Prolog mit Python 3.8.2 auszuführen.
Ich habe Line Benachrichtigung in Python versucht
Ich habe die SMTP-Kommunikation mit Python versucht
leet code easy Längstes gemeinsames Präfix
Ich habe versucht, die Behandlung von Python-Ausnahmen zusammenzufassen
Ich habe versucht, PLSA in Python zu implementieren
Wrangle x Python Buch Ich habe es versucht [2]
Ich habe versucht, PLSA in Python 2 zu implementieren
Python3-Standardeingabe habe ich versucht zusammenzufassen
Ich habe versucht, mit Python + opencv nicht realistisch zu rendern
Ich habe versucht, die UnityCloudBuild-API von Python zu verwenden
Ich habe versucht, ADALINE in Python zu implementieren
Ich habe eine funktionale Sprache mit Python ausprobiert
Ich habe versucht, PPO in Python zu implementieren
Python: Ich habe das Problem des Handlungsreisenden ausprobiert
Wrangle x Python Buch Ich habe es versucht [1]
Mayungos Python Learning Episode 8: Ich habe versucht, Eingaben zu machen
[Python] Ich habe versucht, TF-IDF stetig zu berechnen
Ich habe versucht, Yahoo Wetter zu kratzen (Python Edition)
Ich habe versucht, Python zu berühren (grundlegende Syntax)
Ich habe das Python Tornado Testing Framework ausprobiert
# Ich habe so etwas wie Vlookup mit Python # 2 ausprobiert