shell脚本实现检測回文字符串
全部回文字的结构特征例如以下:
假设字符数是偶数,那么它在结构上表现为:一个字符序列连着还有一个字符同样但次序恰好相反的字符序列。
假设字符数为奇数,那么它在结构上表现为:一个字符序列连着还有一个字符同样但次序恰好相反的字符序列,可是这两个序列中间共享一个同样的字符。
sed命令可以记住之前匹配的子样式。
可以用正則表達式:'\(.\)'。匹配随意一个字符。\1表示其反向引用。如匹配有两个字符的回文正則表達式为:
'\(.\)\(.\)\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
转载于:https://www.cnblogs.com/bhlsheji/p/5347131.html
shell脚本实现检測回文字符串相关推荐
- Java Longest Palindromic Substring(最长回文字符串)
假设一个字符串从左向右写和从右向左写是一样的,这种字符串就叫做palindromic string.如aba,或者abba.本题是这种,给定输入一个字符串.要求输出一个子串,使得子串是最长的padro ...
- 转载-----Java Longest Palindromic Substring(最长回文字符串)
转载地址:https://www.cnblogs.com/clnchanpin/p/6880322.html 假设一个字符串从左向右写和从右向左写是一样的,这种字符串就叫做palindromic st ...
- C语言判断回文字符串
C语言判断回文字符串 #include<stdio.h> char *huiwen(char *str){int i, j,t=0;for(i = 0,j = strlen(str) - ...
- NYOJ 回文字符串
回文字符串 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的,比如"aba".当然, ...
- java判断回文字符串几种简单的实现
11年it研发经验,从一个会计转行为算法工程师,学过C#,c++,java,android,php,go,js,python,CNN神经网络,四千多篇博文,三千多篇原创,只为与你分享,共同成长,一起进 ...
- 题目1192:回文字符串
题目描述: 给出一个长度不超过1000的字符串,判断它是不是回文(顺读,逆读均相同)的. 输入: 输入包括一行字符串,其长度不超过1000. 输出: 可能有多组测试数据,对于每组数据,如果是回文字符串 ...
- 51nod 1092 回文字符串
基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 收藏 关注 回文串是指aba.abba.cccbccc.aaaa这种左右对称的字符串.每个字符串都可以通过向中间 ...
- 判断字符串_python实现--判断回文字符串、回文链表、回文数
所谓回文字符串,就是正读和反读都一样的字符串,比如"level"或者"noon"等等就是回文串.即是对称结构Python系列教程,免费获取,遇到bug及时反馈, ...
- Palindrome(插入字符变成回文字符串)
题目:给定一个字符串,问最少插入多少字符,使字符串变成回文字符串. 思路:X:原字符串 Y:逆字符串 需要插入的字符数=X的长度-(X与Y的LCS的长度) 这里使用了滚动数组,压缩空间,原因: ...
最新文章
- 算法复习——bitset(bzoj3687简单题)
- 线性代数的本质及其在AI中的应用
- 我的世界java和网易能联机吗_网易我的世界单机怎么转联机
- Struts2运行机制(MVC)的分析:
- CMake 手册详解(五)
- Markdown简介和基本语法
- C++ 学习之旅(4)——调试Debug
- fork()请问下面的程序一共输出多少个“A”?多少个-?
- classpass 配置mysql_jmeter压测学习18-JDBC配置连接mysql数据库
- mysql大事务commit快_MYSQL事务他快你慢,都是你自己惹的祸
- Ubuntu赋予普通用户特定目录权限
- python八大排序算法 间书_Python 八大排序算法速度比较
- java实现打印菱形(任意输入数字打印任意阶菱形)
- pygame使用多种方法让背景和人物运动起来
- 如何把真实地形数据DEM导入world machine制作地形
- 基于IDS模型设计的ICS
- Linux eclipse clean,小编为你细说eclipse如何clean/clean up重新编译项目
- 安装docker的可视化UI——Portainer
- 医药电商行业概况及发展趋势!
- 盘点国内外十大免费CDN网站加速服务