LeetCodeに毎日挑戦してみた 125. Valid Palindrome(Python、Go)
Leetcodeとは
leetcode.com
ソフトウェア開発職のコーディング面接の練習といえばこれらしいです。
合計1500問以上のコーデイング問題が投稿されていて、実際の面接でも同じ問題が出されることは多いらしいとのことです。
golang入門+アルゴリズム脳の強化のためにgoとPythonで解いていこうと思います。(Pythonは弱弱だが経験あり)
31問目(問題125)
125. Valid Palindrome
問題内容
Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.
Note: For the purpose of this problem, we define empty string as valid palindrome.
日本語訳
文字列を指定して、英数字のみを考慮し、大文字と小文字を無視して、それが回文であるかどうかを判別します。
注: この問題の目的のために、空の文字列を有効な回文として定義します。
Example 1:
Input: "A man, a plan, a canal: Panama"
Output: true
Example 2:
Input: "race a car"
Output: false
考え方
与えられた文字列から空白を削って全て小文字の文字列にします
スライスで逆から見たものと前から見たものが同じであればtrue違ければfalseです
解答コード
class Solution:
def isPalindrome(self, s):
s = ''.join(e for e in s if e.isalnum()).lower()
return s==s[::-1]
- Goでも書いてみます!
import (
"regexp"
"strings"
)
func isPalindrome(s string) bool {
reg, _ := regexp.Compile("[^a-zA-Z0-9]+")
processedString := reg.ReplaceAllString(s, "")
processedString = strings.ToLower(processedString)
for i := 0; i < len(processedString)/2; i++ {
if processedString[i] != processedString[len(processedString)-1-i] {
return false
}
}
return true
}
Author And Source
この問題について(LeetCodeに毎日挑戦してみた 125. Valid Palindrome(Python、Go)), 我々は、より多くの情報をここで見つけました https://qiita.com/ishishow/items/b0dd149baa060b09acee著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .