【c语言】判断一个字符串是不是回文字符串

//判断一个字符串是不是回文字符串

#include <stdio.h>
#include <assert.h>

int panduan( char *p )
{
	char *q ;
	assert( *p != NULL );
	q = p;
	while( *p != '\0')
	{
		p++;
	}
	p--;
	while(*q != '\0')
		{
			if( *p == *q)
			{
				p--;
				q++;
			}
			else
			return -1;

		}
	return 1;
	}

int main()
{
	char p[] = "12321";
	printf("%d\n",panduan(p));
	return 0;
}

时间: 2024-11-03 20:47:45

【c语言】判断一个字符串是不是回文字符串的相关文章

用c语言实现 判断一个字符串是不是回文字符串

#include<stdio.h>; #include<string.h>; void huiwen( const char* str) { int i; int flag; int len=strlen(str); char *ch=str; while(*ch!='\0') { ch++; } ch--; for(i=1;i<=len/2;i++) { if(*ch==*str) { flag=1; ch--; str++; } else { printf("不

判断一个字符串是不是回文字符串

  function isPalindrome(str) { str = str.replace(/\W/g, '').toLowerCase(); return (str == str.split('').reverse().join('')); } 先将传递进来的字符串中的除字母数字下划线之外的东西删除,并将字符串转化为小写. 然后将字符串转换为数组,目的是使用重排序方法reverse()方法,进行数组序列反转,然后再转换为字符串.与str进行比较如果相等证明是回文字符串 由于有个repla

判断一个链表是不是回文链表

第一种方法: 额外空间复杂度O(N) ,遍历链表时,将元素入栈,再次遍历时,从栈中弹出元素,比较两者的大小,就可以判断是不是回文链表第二种方法:利用快慢指针,先找到链表的中间位置,然后反转链表的后半部分,再分别从链表两头遍历比较大小,最后将链表恢复为原始结构 public class PalindromeLinkedList { public static void main(String[] args) { Node head = new Node(1); head.next = new No

写一个少于 80 字符的函数,判断一个字符串是不是回文字符串

废话不多说,直接上代码: 1 function isPalindrome(str){ 2 return (str === str.split('').reverse().join('')); 3 } 4 5 console.log(isPalindrome('1 $bb$1')); // false 6 console.log(isPalindrome('1$bb$1')); // true

680. Valid Palindrome II【Easy】【双指针-可以删除一个字符,判断是否能构成回文字符串】

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

(c语言)回文字符串的判断,gets和scanf

问题描述: 判断一个字符串是否是回文字符串. 程序分析: 回文字符串: 回文字符串是指一个字符中的最高位与最低位的字符是一样的,次高位和次低位上的字符是一样的,以此类推.同时,值得注意的是单个字符,或者多个重复的字符也是回文字符串. (1)定义一个判断回文数的函数,按照上面给出的回文数的定义,我们进行判断. (2)本程序在主函数传入字符串的过程中发现了用gets函数与用scanf函数的不一样之处.我想让这个程序在一个while循环的控制下可以判断多个字符串再结束.这时候如果用gets不断的读取s

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

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

关于回文字符串

1 提取一个字符串中的所有回文字符串 我目前的思路是循环遍历,第i个和0-i-1个如果a[i]=a[j],则判断i-j之间是不是回文,0-j之间的字符每个是一个回文字符串 2 找出一个字符串中的最长的回文字符串 先找出a[i-1]=a[i+1]或者a[i]=a[i+1]这样的数,然后像两边扩展,记录下长度和位置,直到遍历完所有的字符串,然后找出长度最大的 3给你一个字符串,可在任意位置添加字符,最少再添加几个字符,可以使这个字符串成为回文字符串. 输入 第一行给出整数N(0<N<100)接下来

nyoj 回文字符串(LCS)

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