shell脚本实现检測回文字符串

时间:2021-05-30 01:23:02

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

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

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

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

shell脚本实现检測回文字符串的更多相关文章

  1. 转载-----Java Longest Palindromic Substring&lpar;最长回文字符串&rpar;

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

  2. Java Longest Palindromic Substring&lpar;最长回文字符串&rpar;

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

  3. &lbrack;LeetCode&rsqb; Valid Palindrome 验证回文字符串

    Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignori ...

  4. 回文字符串的判断!关于strlen&lpar;char &ast; str&rpar;函数

    #include <stdio.h> #include <string.h> int ishuiw(char * p); int main() { ;//true-false接 ...

  5. NYOJ&lowbar;37&period;回文字符串 &lpar;附滚动数组&rpar;

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

  6. 131&period; 132&period; Palindrome Partitioning &ast;HARD&ast; -- 分割回文字符串

    131. Palindrome Partitioning Given a string s, partition s such that every substring of the partitio ...

  7. leetcode:Longest Palindromic Substring(求最大的回文字符串)

    Question:Given a string S, find the longest palindromic substring in S. You may assume that the maxi ...

  8. 【又见LCS】NYOJ-37 回文字符串

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

  9. &lbrack;NYOJ 37&rsqb; 回文字符串

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

随机推荐

  1. iOS开发——高级篇——二维码的生产和读取

    一.二维码的生成 从iOS7开始集成了二维码的生成和读取功能此前被广泛使用的zbarsdk目前不支持64位处理器 生成二维码的步骤:导入CoreImage框架通过滤镜CIFilter生成二维码 二维码 ...

  2. Theano2&period;1&period;5-基础知识之打印出theano的图

    来自:http://deeplearning.net/software/theano/tutorial/printing_drawing.html Printing/Drawing Theano gr ...

  3. C语言回顾-常量和变量

    1.C语言共32个关键字 1)数据类型关键字 a.基本数据类型 void char int float double b.类型修饰关键字 short long signed unsigned c.复杂 ...

  4. Grunt自动化构建工具&lpar;网址:http&colon;&sol;&sol;www&period;gruntjs&period;net&sol;getting-started或者http&colon;&sol;&sol;gruntjs&period;cn&sol;getting-started&rpar;

    简介:Grunt是基于Node.js的项目构建工具,对于需要重复执行的任务,例如压缩.编译.单元测试等,自动化工具可以减少你的工作量,使你的工作更轻松. 一:检测nodejs是否安装好,打开CMD控制 ...

  5. mysql概要(九)字符集和校对集

    1.mysql 字符集有细致设置: 2.mysql字符处理机制是:数据库和客户端之间存在一个字符集转换器(后文简称转换器)将客户端字符编码(必须告诉服务端的)转换成一种中间编码的数据(可自定义的但保证 ...

  6. &period;net remoting 客户端与服务端绑定事件,一部电脑当服务器,另一部当客户端,发布后没法接收远程错误信息。

    可以是用下面代码抛出远程错误,客户端和服务端都要设置,因为服务端事件回调时角色变成了远程客户端了. RemotingConfiguration.CustomErrorsMode = CustomErr ...

  7. hdu 4081 最小生成树&plus;树形dp

    思路:直接先求一下最小生成树,然后用树形dp来求最优值.也就是两遍dfs. #include<iostream> #include<algorithm> #include&lt ...

  8. HTML&plus;CSS笔记 表格&comma;超链接&comma;图片&comma;表单

    表格 给表格加入CSS样式,添加表格边框 语法: <style type="text/css"> table tr td,th{border:1px solid #00 ...

  9. 精读《V8 引擎 Lazy Parsing》

    1. 引言 本周精读的文章是 V8 引擎 Lazy Parsing,看看 V8 引擎为了优化性能,做了怎样的尝试吧! 这篇文章介绍的优化技术叫 preparser,是通过跳过不必要函数编译的方式优化性 ...

  10. codeforces-3

    C Game"23" #include<iostream> using namespace std; int main() { long long n,m; long ...