Ich habe jeden Tag LeetCode 9 ausprobiert. Palindrome Number (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)

Dritte Frage (Problem 09)

Palindrome Number

--Probleminhalt (japanische Übersetzung)

Bestimmen Sie, ob die Ganzzahl ein Kreis ist. Eine Ganzzahl ist eine Zirkulation, wenn sie auf die gleiche Weise vorwärts und rückwärts gelesen wird.

** Follow-up: ** Kann es gelöst werden, ohne die Ganzzahl in eine Zeichenfolge zu konvertieren?

Example 1:

  Input: x = 121
  Output: true

Example 2:

  Input: x = -121
  Output: false
  Explanation: From left to right, it reads -121. From right to left, it becomes 121-. Therefore it is not a palindrome.

Example 3:

  Input: x = 10
  Output: false
  Explanation: Reads 01 from right to left. Therefore it is not a palindrome.

Example 4:

  Input: x = -101
  Output: false

Denkweise

  1. Machen Sie ein positives / negatives Urteil und verarbeiten Sie nur positiv.
  2. Machen Sie eine Zeichenkette und beurteilen Sie in umgekehrter Reihenfolge

Erläuterung

  1. Wenn es negativ ist, wird es keine Runde sein.
  2. Sie können int str mit der Funktion str erstellen. Verwenden Sie dann Scheiben in umgekehrter Reihenfolge. .. .. (Wegen Problem nicht empfohlen)

--Antwortcode

  class Solution(object):
      def isPalindrome(self, x):
          return str(x) == str(x)[::-1]

Die Beurteilung erfolgt durch Umkehren der Zeichenketten mit Slices! Wir wurden von @shiracamus beraten. Da der Wert des Vergleichsausdrucks ein boolescher Wert ist, kann der bedingte Ausdruck weggelassen werden. Vorheriger Code ↓

 def isPalindrome(self, x):
      if x >= 0:
          if str(x) == str(x)[::-1]:
              return True
      return False
  import "strconv"
  func isPalindrome(x int) bool {
  	s := strconv.Itoa(x)
  	r := []rune(s)
  	for i, j := 0, len(r)-1; i < j; i, j = i+1, j-1 {
  		if r[i] != r[j] {
  			return false
  		}
  	}
  	return true
  }

Die Lösung ist dieselbe, aber im Fall von Go ist die Zeichenfolge unveränderlich. Auf diese Weise können Sie sie schreiben.

Ich habe auch das strconv-Paket importiert und Itoa verwendet. Ganzzahl zu a.

Go und Python-Ausführungszeit

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

Eine andere Lösung

Ich habe es als Zahl mit dem Mechanismus von 9.Reverse Integer gelöst, den ich am Tag zuvor gelöst habe. (Dies wird empfohlen.)

func isPalindrome(x int) bool {
    if x<0{
        return false
    }
    new_var := x 
    rev := 0
    for x!=0{
        pop := x%10
        x = x/10
        
        rev = rev *10 + pop
    }
    if rev==new_var{
        return true
    }else{
        return false
    }
}

Verwenden Sie den Typ Rune, um Zeichenfolgen Zeichen für Zeichen zu behandeln

Der String kann in [] Rune und [] Byte umgewandelt werden.

Der tatsächliche Zustand von Rune ist int32 und der von Unicode. Groß genug, um 4 Bytes darzustellen

string und rune Arrays können ineinander konvertiert werden, wenn Sie also einen String schneiden möchten

  package main
  
  import "fmt"
  
  func main() {
      nihongo := "japanisch"
  
      fmt.Printf("nihongo = %s\n", nihongo)
      fmt.Printf("nippon = %s\n", string([]rune(nihongo)[:2]))
  }

Wie string[] rune → [string Es kann sicher verarbeitet werden, indem es in ] konvertiert wird (http://golang.org/ref/spec#String_types).

Ausführungsergebnis

  nihongo =japanisch
  nippon =Japan

Artikel, auf die verwiesen wird

First Go Language (unter Windows) Teil 4

Unicode-Kenntnisse zum Verständnis der Go-Rune

Recommended Posts

Ich habe jeden Tag LeetCode 9 ausprobiert. Palindrome Number (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 ausprobiert. 1. Zwei Summen (Python, Go)
Ich habe jeden Tag 13 LeetCode ausprobiert. Roman to Integer (Python, Go)
Ich habe jeden Tag LeetCode ausprobiert. 14. Längstes allgemeines Präfix (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
Ich habe versucht, AOJs Integer-Theorie mit Python zu lösen
Ich habe fp-Wachstum mit Python versucht
Ich habe versucht, mit Python zu kratzen
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
Mayungos Python Learning Episode 6: Ich habe versucht, eine Zeichenkette in eine Zahl umzuwandeln
(Python) Ich habe versucht, 1 Million Hände zu analysieren ~ Ich habe versucht, die Anzahl der AA ~ zu schätzen
Ich habe versucht, die Behandlung von Python-Ausnahmen zusammenzufassen
Ich habe versucht, PLSA in Python zu implementieren
Ich habe versucht, Permutation in Python zu implementieren
Wrangle x Python Buch Ich habe es versucht [2]
Python3-Standardeingabe habe ich versucht zusammenzufassen
Ich habe versucht, die Bayes'sche Optimierung von Python zu verwenden
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, mit Python ② (Fibonacci-Zahlenfolge) aufzuklären.
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, Python zu berühren (grundlegende Syntax)
Ich habe das Python Tornado Testing Framework ausprobiert
# Ich habe so etwas wie Vlookup mit Python # 2 ausprobiert