全部回文字的结构特征例如以下:

假设字符数是偶数,那么它在结构上表现为:一个字符序列连着还有一个字符同样但次序恰好相反的字符序列。

假设字符数为奇数,那么它在结构上表现为:一个字符序列连着还有一个字符同样但次序恰好相反的字符序列,可是这两个序列中间共享一个同样的字符。

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脚本实现检測回文字符串相关推荐

  1. Java Longest Palindromic Substring(最长回文字符串)

    假设一个字符串从左向右写和从右向左写是一样的,这种字符串就叫做palindromic string.如aba,或者abba.本题是这种,给定输入一个字符串.要求输出一个子串,使得子串是最长的padro ...

  2. 转载-----Java Longest Palindromic Substring(最长回文字符串)

    转载地址:https://www.cnblogs.com/clnchanpin/p/6880322.html 假设一个字符串从左向右写和从右向左写是一样的,这种字符串就叫做palindromic st ...

  3. C语言判断回文字符串

    C语言判断回文字符串 #include<stdio.h> char *huiwen(char *str){int i, j,t=0;for(i = 0,j = strlen(str) - ...

  4. NYOJ 回文字符串

    回文字符串 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的,比如"aba".当然, ...

  5. java判断回文字符串几种简单的实现

    11年it研发经验,从一个会计转行为算法工程师,学过C#,c++,java,android,php,go,js,python,CNN神经网络,四千多篇博文,三千多篇原创,只为与你分享,共同成长,一起进 ...

  6. 题目1192:回文字符串

    题目描述: 给出一个长度不超过1000的字符串,判断它是不是回文(顺读,逆读均相同)的. 输入: 输入包括一行字符串,其长度不超过1000. 输出: 可能有多组测试数据,对于每组数据,如果是回文字符串 ...

  7. 51nod 1092 回文字符串

    基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题  收藏  关注 回文串是指aba.abba.cccbccc.aaaa这种左右对称的字符串.每个字符串都可以通过向中间 ...

  8. 判断字符串_python实现--判断回文字符串、回文链表、回文数

    所谓回文字符串,就是正读和反读都一样的字符串,比如"level"或者"noon"等等就是回文串.即是对称结构Python系列教程,免费获取,遇到bug及时反馈, ...

  9. Palindrome(插入字符变成回文字符串)

    题目:给定一个字符串,问最少插入多少字符,使字符串变成回文字符串. 思路:X:原字符串 Y:逆字符串 需要插入的字符数=X的长度-(X与Y的LCS的长度)     这里使用了滚动数组,压缩空间,原因: ...

最新文章

  1. 算法复习——bitset(bzoj3687简单题)
  2. 线性代数的本质及其在AI中的应用
  3. 我的世界java和网易能联机吗_网易我的世界单机怎么转联机
  4. Struts2运行机制(MVC)的分析:
  5. CMake 手册详解(五)
  6. Markdown简介和基本语法
  7. C++ 学习之旅(4)——调试Debug
  8. fork()请问下面的程序一共输出多少个“A”?多少个-?
  9. classpass 配置mysql_jmeter压测学习18-JDBC配置连接mysql数据库
  10. mysql大事务commit快_MYSQL事务他快你慢,都是你自己惹的祸
  11. Ubuntu赋予普通用户特定目录权限
  12. python八大排序算法 间书_Python 八大排序算法速度比较
  13. java实现打印菱形(任意输入数字打印任意阶菱形)
  14. pygame使用多种方法让背景和人物运动起来
  15. 如何把真实地形数据DEM导入world machine制作地形
  16. 基于IDS模型设计的ICS
  17. Linux eclipse clean,小编为你细说eclipse如何clean/clean up重新编译项目
  18. 安装docker的可视化UI——Portainer
  19. 医药电商行业概况及发展趋势!
  20. 盘点国内外十大免费CDN网站加速服务

热门文章

  1. java面试题二十九 多线程数据共享问题
  2. 第一章:AJAX与jQuery
  3. 学习nginx接口调用之摘录
  4. C#与C++之间dll的二维(多维)数组传递
  5. 在控制台中循环录入字符串,输入q时退出。 然后显示一个新的字符(Python)
  6. javascript的全局变量
  7. spark.mllib:Optimizer
  8. webdriver 执行完毕关闭chromedriver进程
  9. jvm监控jstatd使用
  10. 《信息检索》第8讲 毕业论文学习指导(资源及预习材料)