输入一个字符串,判断是否位回文。“回文”是指顺读和逆读都一样的字符串,如“abcdcba”
本人有点急的,我学了半学期,由于其它功课较多的,随便告诉一下解题的算法思路,简单明白就行。谢谢了...
本人有点急的,我学了半学期,由于其它功课较多的,随便告诉一下解题的算法思路,简单明白就行。谢谢了
展开
展开全部
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 回文数
{
class Program
{
// http://zhidao.baidu.com/question/81874750.html?fr=id_push
// 输入一个字符串,判断是否位回文。“回文”是指顺读和逆读都一样的字符串,如“abcdcba”
static void Main(string[] args)
{
string receiveInput = string.Empty;
bool result = false;
Console.WriteLine("Input a string you want to verify:");
receiveInput = Console.ReadLine();
result = IsStringCorrect(receiveInput);
Console.WriteLine("{0} is a \x56DE\x6587\x6570? {1}", receiveInput, result);
Console.ReadKey();
}
public static bool IsStringCorrect(string actualString)
{
bool result = false;
int length = actualString.Length;
char[] compareString = new char[length];
string expectedString = string.Empty;
for (int i = 0; i < length; i++)
{
compareString[length - i - 1] = actualString[i];
}
foreach (var ch in compareString)
{
expectedString += ch.ToString();
}
if (expectedString.Equals(actualString))
{
result = true;
}
return result;
}
}
}
这个是C#写的 思路你能读懂吧 希望对你有帮助
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 回文数
{
class Program
{
// http://zhidao.baidu.com/question/81874750.html?fr=id_push
// 输入一个字符串,判断是否位回文。“回文”是指顺读和逆读都一样的字符串,如“abcdcba”
static void Main(string[] args)
{
string receiveInput = string.Empty;
bool result = false;
Console.WriteLine("Input a string you want to verify:");
receiveInput = Console.ReadLine();
result = IsStringCorrect(receiveInput);
Console.WriteLine("{0} is a \x56DE\x6587\x6570? {1}", receiveInput, result);
Console.ReadKey();
}
public static bool IsStringCorrect(string actualString)
{
bool result = false;
int length = actualString.Length;
char[] compareString = new char[length];
string expectedString = string.Empty;
for (int i = 0; i < length; i++)
{
compareString[length - i - 1] = actualString[i];
}
foreach (var ch in compareString)
{
expectedString += ch.ToString();
}
if (expectedString.Equals(actualString))
{
result = true;
}
return result;
}
}
}
这个是C#写的 思路你能读懂吧 希望对你有帮助
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2009-01-10
展开全部
#include<stdio.h>
main()
{
int a,b=0,c=0;
char f[255];
scanf("%s",f);
for (a=0;f[a]!='\0';a++)
b++;
b--;a=0;//注意数组下标的变化
while(a<=b)//要循环变化
{
if(f[a++]!=f[b--])
{printf ("N");c=1;break;}
}
if(c==0)
printf ("Y");
return 0;
}
main()
{
int a,b=0,c=0;
char f[255];
scanf("%s",f);
for (a=0;f[a]!='\0';a++)
b++;
b--;a=0;//注意数组下标的变化
while(a<=b)//要循环变化
{
if(f[a++]!=f[b--])
{printf ("N");c=1;break;}
}
if(c==0)
printf ("Y");
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
思路就是首先找到字符串的首和尾,首往后走,尾向前走,边走边比较。如果首尾相遇或者是同一个位置时就是回文,否则不是。
#include <stdio.h>
#include <string.h>
void main()
{
char a[100];
scanf("%s",a);
if (strlen(a) <= 0)
{
return;
}
for (int i = 0; i< int (strlen(a)/2);i++)
{
if (a[i] != a[strlen(a)-1-i])
{
break;
}
}
i >= (int)(strlen(a)/2)?printf("yes"):printf("no");
}
VC6.0 调试通过。。
#include <stdio.h>
#include <string.h>
void main()
{
char a[100];
scanf("%s",a);
if (strlen(a) <= 0)
{
return;
}
for (int i = 0; i< int (strlen(a)/2);i++)
{
if (a[i] != a[strlen(a)-1-i])
{
break;
}
}
i >= (int)(strlen(a)/2)?printf("yes"):printf("no");
}
VC6.0 调试通过。。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询