shell脚本实现检測回文字符串
2024-08-29 17:42:44
全部回文字的结构特征例如以下:
假设字符数是偶数,那么它在结构上表现为:一个字符序列连着还有一个字符同样但次序恰好相反的字符序列。
假设字符数为奇数,那么它在结构上表现为:一个字符序列连着还有一个字符同样但次序恰好相反的字符序列,可是这两个序列中间共享一个同样的字符。
sed命令可以记住之前匹配的子样式。
可以用正則表達式:'\(.\)'。匹配随意一个字符。\1表示其反向引用。如匹配有两个字符的回文正則表達式为:
'\(.\)\(.\)\2\1'
匹配随意长度的回文脚本例如以下所看到的:
#!/bin/bash
#file name: match_palindrome.sh
#function: find palindrome in a file. if [ $# -ne 2 ]
then
echo "Usage: $0 filename string_length"
exit -1
fi filename=$1 basepattern='/^\(.\)' count=$(( $2/2 )) # matche certain length
for ((i=1; i < $count; i++))
do
basepattern=$basepattern'\(.\)';
done # the length is even
if [ $(( $2 % 2)) -ne 0 ]
then
basepattern=$basepattern'.';
fi for ((count; count > 0; count--))
do
basepattern=$basepattern'\'"$count";
done echo "debug: $basepattern" # print the result
basepattern=$basepattern'$/p'
sed -n "$basepattern" $filename
最新文章
- 七天学会ASP.NET MVC (六)——线程问题、异常处理、自定义URL
- build配置
- ATL是如何实现线程安全的引用计数和多线程控制的
- [转载]TableView详解
- centos 6.X 安装scrapy-原创
- java中几种常见字符集与乱码介绍
- Apache—DBUtils
- ios专题 - 常用设计模式
- zoj3713 7Bit
- JQuery+CSS3实现封装弹出登录框效果
- 使用IntelliJ IDEA开发SpringMVC网站(一)开发环境
- BZOJ 2064: 分裂 [DP 状压 转化]
- PHP的性能优化方法总结
- [HNOI2011]数学作业
- HashMap与ConcurrentHashMap的测试报告
- 洛谷 [HNOI2014]道路堵塞 解题报告
- Spark学习笔记——构建基于Spark的推荐引擎
- mysql8.0.4以后修改密码方式变更
- PHP SFTP应用(二)
- Spring cloud config-client 爬坑
热门文章
- JavaScript学习代码整理(一)
- ASP.NET多用户操作相同互斥的对象
- [转贴]C++调用openssl 的AES加密例子
- 创建虚拟桌面的代码(重启桌面进程)(使用GetThreadDesktop,CreateDesktop,SetThreadDesktop等函数)
- bzoj3172
- 在Windows Azure公有云环境部署企业应用
- 推荐一个Xcode插件: KSImageNamed (自动补全图片文件名称, 并显示图片大小)
- Android调试时, ";adb devices";命令提示 adb server is out of date. killing...
- 【转】我的电脑最近忽然开不了机,启动修复也无法修复,win7系统。开机的时候如果不点启动修复直接正常启动
- 【ArcGIS Server 开发系列】Flyingis六大系列讲座精品PDF奉献