Quantcast
Channel: HP-UX –俺的備忘録 〜なんかいろいろ〜
Viewing all articles
Browse latest Browse all 99

Linuxコンソール上で文字列の回文判定を行う

$
0
0

ふと、コンソール上でワンライナーで文字列の回文判定を行うにはどうすればよいのだろう?と思ったので調べてみた。
以下のようにすることで、回文判定を行うことができる。

perlの場合、アルファベットならもっと短くできるのだけど、日本語も対応させるとちょっと長くなってしまった。

echo "あいうえお" | awk '{ split($1,a,""); for(i=1;i<=length($1)/2;i++) if (a[length($1)-i+1]==a[i]) f=0; else {f=1}; print f}' # 返り値が0なら回文、1なら回文ではない
echo "あいうえお" | perl -lne 'use Encode decode;$str=decode("UTF-8", $_);print 0 if $str eq reverse($str)' # 返り値が0なら回文

20160702_132505000000

[root@BS-PUB-CENT7-01 ~]# echo "あいうえお" | awk '{ split($1,a,""); for(i=1;i<=length($1)/2;i++) if (a[length($1)-i+1]==a[i]) f=0; else {f=1}; print f}' # 返り値が0なら回文、1なら回文ではない
1
[root@BS-PUB-CENT7-01 ~]# echo "あいうえおえういあ" | awk '{ split($1,a,""); for(i=1;i<=length($1)/2;i++) if (a
[length($1)-i+1]==a[i]) f=0; else {f=1}; print f}' # 返り値が0なら回文、1なら回文ではない
0
[root@BS-PUB-CENT7-01 ~]# echo "あいうえお" | perl -lne 'use Encode decode;$str=decode("UTF-8", $_);print 0 if $str eq reverse($str)' # 返り値が0なら回文
[root@BS-PUB-CENT7-01 ~]# echo "あいうえおえういあ" | perl -lne 'use Encode decode;$str=decode("UTF-8", $_);print 0 if $str eq reverse($str)' # 返り値が0なら回文
0

 


Viewing all articles
Browse latest Browse all 99

Trending Articles