C/C++开发应用:回文字符串

回文:回文就是正读反读都一样的字符串,例如:"radar","able was i ere i saw elba" 和 "a man a plan a canal panama"(如果忽略空格) 。

请编写递归函数testPalindrome,在数组中的字符串为回文时返回true,否则返回false. 函数忽略字符串中的空格和标点符号。

#include <stdio.h>
/* 字符串 一半数 总个数*/
int charf(char d[],int k, int i)
{
if(d[k]==d[i-k]&&k==0)
return(1);
else if(d[k]==d[i-k])
charf(d,k-1,i); /*递归调用*/
else
return(0);
}
main()
{
int i=0,n=0;
char a,b[20];
while ((a=getchar())!='\n')
{
b[i]=a;
i++;
}
if(i%2==0)
n=charf(b,(i/2),i-1);
else
n=charf(b,(i/2-1),i-1);
if(n==0)
printf("不是回文");
else
printf("是回文");
getch();
}

时间: 2024-10-02 06:10:27

C/C++开发应用:回文字符串的相关文章

PHP判断一个字符串是否是回文字符串的方法

 这篇文章主要介绍了PHP判断一个字符串是否是回文字符串的方法,实例分析了php操作字符串判断回文的技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了PHP判断一个字符串是否是回文字符串的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 <?php function ishuiwen($str){ $len=strlen($str); $l=1;

leetcode 5 Longest Palindromic Substring--最长回文字符串

问题描述 Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and there exists one unique longest palindromic substring. 所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的.比如"a" , "aaabbaaa" 之前

c 回文字符串-用c语言判断输入字符串是不是回文字符串

问题描述 用c语言判断输入字符串是不是回文字符串 输入的字符串可能有空格,要求输入 一个数,表示要输入几组数据,然后输入字符串: 若是回文字符串,则输出yes,否则输出no: 例如 3 qwe abba ds ds no yes no 求代码.. 初学C这问题想了很久,求帮忙.. 解决方案 你可以用两个指针,分别指向字符串的头和尾,依此移动来比较,如果相同则yes,否则no

回文字符串实现

一个整数,前后对称称为回文数,比如11211是回文数,12321是回文数.那么回文字符串也是同样的道理,strrts是回文字符串,heleh是回文字符串. 我们就可以来实现下它,非常的简单. #include <stdio.h> #include <string.h> /* *date:2016.10.14 *author:y.x.yang * */ int HuiwenStr(char *str) { //定义两个指针,s1指向字符串str的首个字符,s2指向字符串str的倒数第

NYOJ&amp;#160;回文字符串

回文字符串 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的,比如"aba".当然,我们给你的问题不会再简单到判断一个字符串是不是回文字符串.现在要求你,给你一个字符串,可在任意位置添加字符,最少再添加几个字符,可以使这个字符串成为回文字符串. 输入 第一行给出整数N(0 接下来的N行,每行一个字符串,每个字符串长度不超过1000. 输出 每行输出所需添加的最少字符数 样例输入 1 Ab3b

[LeetCode] Valid Palindrome II 验证回文字符串之二

Given a non-empty string s, you may delete at most one character. Judge whether you can make it a palindrome. Example 1: Input: "aba" Output: True Example 2: Input: "abca" Output: True Explanation: You could delete the character 'c'. N

Java实现从文本中查找最长的回文字符串

1 * 难度:初级 2 * 问题:从输入文件calfflac.in中读取文本,找到最长的回文串(翻转之后和它自己相等的字符串),只考虑字母,不区分大小写 3 * 输出最长回文串的长度,并且输出它在原文中的对应的串.如果多个回文串长度相等,输出第一个. 4 * 注:该题目来自:http://ace.delos.com/usacogate,有兴趣的朋友可以去上面注册,很好的练习平台. 5*/ 6import java.util.*; 7import java.io.*; 8class calffla

PHP判断一个字符串是否是回文字符串

 代码如下 复制代码 <?php   function ishuiwen($str){    $len=strlen($str);    $l=1;    $k=intval($len/2)+1;      for($j=0;$j<$k;$j++){        if (substr($str,$j,1)!=substr($str,$len-$j-1,1))           {    $l=0;    break;      }          }   if ($l==1)   {  

[网易]字符串回文分割

[题目] 将一个很长的字符串,分割成一段一段的子字符串,子字符串都是回文字符串.有回文字符串就输出最长的,没有回文就输出一个一个的字符. 例如:habbafgh 输出h,abba,f,g,h. [思路一] 基于"最长回文子串算法"求出当前字符串的最长回文子串,就可以分成3部分 a.最长回文子串left部分 b.最长回文子串 c.最长回文子串right部分 然后分别求a和c的最长回文子串 递归至每部分都成单个字符+当前最长回文子串,就可以分解成最终结果. [代码一] #include&l