--/--/--

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

2007/06/12

[今日のスクリプト] 回文判定

元ネタ

#!/usr/bin/python
#coding:utf-8

def kaibun1(str):
    return True if not [s for i,s in enumerate(str[0:((len(str)/2)+1)]) if s != str[-(i+1)]] else False

def kaibun2(str):
    for i,s in enumerate(str[0:((len(str)/2)+1)]):
        if s != str[-(i+1)]:
            return False
    return True

print kaibun1("step on no pets")
print kaibun1(u"しんぶんし")
print kaibun2("step on no pets")
print kaibun2(u"しんぶんし")

結果

True
True
True
True

kaibun1(str) のほうが短いけど、こっちは途中で違うことが判明しようがなんだろうが全部に対してループ回すのに対し、kaibun2(str) は違うのが分かった時点で False を返す。

日本語は u"" でユニコード化する必要があるらしい。2ch で聞いた。

スポンサーサイト

comment

post




上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。