问:数据结构java语言利用栈实现判断回文
- 答:先从屁股尾开始入栈,出栈之后 合并为String 如果和原来一样就是回文
问:回文判断
- 答:楼上的,人家要的是数据结构的算法,给人改改吧
问:C语言数据结构,用栈编一个程序,判断一个字符串是否为回文
- 答:It's easy.分再高点吧!另外,把你已有的,能用的代码给我发一下,不至于要我自己写个栈吧?c语言没有stl的话,还要自己找栈的实现代码吧?反正我没有,你要给我发一个,然后把分提高到150,我就帮你写了。
baiduzhidao.vase@ - 答:说说我的思路啊。回文定义应该正着看和反着看都是一个字符串。那么应该分两种去判断,一个是字符的长度为奇数,一个为偶数。先说奇数,先求中间索引值,如果长度为s,索引为i,那么中间字符的索引为 i=(s-1)/2 ,那么满足 str[i-n] == str[i+n] n 的值从i循环到0.如果都满足就是是回文。
如果长度为偶数,也要先求出一个参照索引ii,可以是ii = s/2, 要满足str[ii+n] == str[ii-n-1],n一直从ii-1循环到0,既是回文。至于栈你自己用也行。我觉得不用栈也可以。不知道为什么要用栈。 - 答:可以选择用数组模拟栈
问:c语言编程:判定一个字符是否是回文串(回文串是指从开头读和从末尾读均为相同字符的字符串,例如:abcba
- 答:1、首先,在C语言软件中,定义多个整型变量,保存程序中所需操作的数值。
2、定义两个数组,保存输入的字符串和最长回文。
3、输入字符串,保存在变量a中。计算字符串的长度,设置变量k和max的初值。
4、接着,用循环语句实现查找回文,以及最长回文的判断。
5、用if语句判断回文是否偶数,如果条件成立执行以下语句。
6、最后运行程序,输入任一连续字符串,电脑就会判断其中的最长回文,并输出。 - 答:#include <stdio.h>
#include <string.h>
void main()
{
char str[128];
scanf("%s",str);
int i=0;
int iLen=strlen(str);
while (i<=iLen)
{
if (str[i]!=str[iLen-1])
{
printf("这不是回文串!\n");
return;
}
i++;
iLen--;
}
printf("这是回文串!\n");
return ;
} - 答:#include <stdio.h>
#include <string.h>
void main()
{
char s[100],a[100];
int b,i,t;
printf("请输入字符串:");
scanf("%s",s);
b=strlen(s);
t=b;
i=0;
while(i!=t)
{
a[i]=s[b-1];
b--;
i++;
}
a[i]='\0';
if(!strcmp(s,a))
printf("这是回文串!\n");
else
printf("这不是回文串!\n");
} - 答:bool symm(unsigned n)
{
unsigned i=n;
unsigned m=0;
while(i>0){
m=m*10+i%10;
i/=10;
}
return m==n;
}
int main()
{ int Val;
cin>>Val;//输入目标数字
bool Res=symm(Val);
cout<<Res;
return 0;
}
通过除10取余反向读取数字判断
问:数据结构(C语言版)中关于“回文”的算法程序
- 答:假设字符串长度是 len
int i;
for ( i=0; i<=len/2; ++i) {
if ( str[i] != str[len-i-1]) return false;
}
return true; - 答:依次比较第n个元素和倒数第n个元素,第n个元素的下标是n-1,倒数第n个元素的下标是m-n-1,m是元素总个数
n从0开始到m/2
如果m是奇数,那么m/2是中间那个元素左边那个,最中间那个元素不用和本身比较了
如果m是偶数,那么m/2和m/2+1是最中间那2个元素
代码就是vbtraz写的那样 - 答:假设字符串长度是
len
int
i;
for
(
i=0;
i<=len/2;
++i)
{
if
(
str[i]
!=
str[len-i-1])
return
false;
}
return
true;