shell脚本实现检測回文字符串
生活随笔
收集整理的這篇文章主要介紹了
shell脚本实现检測回文字符串
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
全部回文字的結(jié)構(gòu)特征例如以下:
假設(shè)字符數(shù)是偶數(shù),那么它在結(jié)構(gòu)上表現(xiàn)為:一個字符序列連著還有一個字符同樣但次序恰好相反的字符序列。
假設(shè)字符數(shù)為奇數(shù),那么它在結(jié)構(gòu)上表現(xiàn)為:一個字符序列連著還有一個字符同樣但次序恰好相反的字符序列,可是這兩個序列中間共享一個同樣的字符。
sed命令可以記住之前匹配的子樣式。
可以用正則表達(dá)式:'\(.\)'。匹配隨意一個字符。\1表示其反向引用。如匹配有兩個字符的回文正則表達(dá)式為:
'\(.\)\(.\)\2\1'
匹配隨意長度的回文腳本例如以下所看到的:
#!/bin/bash #file name: match_palindrome.sh #function: find palindrome in a file.if [ $# -ne 2 ] thenecho "Usage: $0 filename string_length"exit -1 fifilename=$1basepattern='/^\(.\)'count=$(( $2/2 ))# matche certain length for ((i=1; i < $count; i++)) dobasepattern=$basepattern'\(.\)'; done# the length is even if [ $(( $2 % 2)) -ne 0 ] thenbasepattern=$basepattern'.'; fifor ((count; count > 0; count--)) dobasepattern=$basepattern'\'"$count"; doneecho "debug: $basepattern"# print the result basepattern=$basepattern'$/p' sed -n "$basepattern" $filename轉(zhuǎn)載于:https://www.cnblogs.com/bhlsheji/p/5347131.html
總結(jié)
以上是生活随笔為你收集整理的shell脚本实现检測回文字符串的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows7配置GPU和Theano
- 下一篇: 辛星浅谈PHP的混乱的编码风格