大家好,又见面了,我是你们的朋友全栈君。
7-1 判断回文字符串 (15分)
输入一个字符串,判断该字符串是否为回文。回文就是字符串中心对称,从左向右读和从右向左读的内容是一样的。
输入格式:
输入在一行中给出一个不超过80个字符长度的、以回车结束的非空字符串。
输出格式:
输出在第1行中输出字符串。如果它是回文字符串,在第2行中输出Yes,否则输出No。
输入样例1:
level
输出样例1:
level
Yes
输入样例2:
1 + 2 = 2 + 1 =
输出样例2:
1 + 2 = 2 + 1 =
No
解法1:前后指针对比
#include<stdio.h>
#include<string.h>
int main(){
char a[85];
gets(a);
int h=0,t=strlen(a)-1,flag=1;
while(h<t){
if(a[h++]!=a[t--]) flag=0;
}
printf("%s\n",a);
if(flag) printf("Yes");
else printf("No");
return 0;
}
解法2:折半对比
#include<stdio.h>
#include<string.h>
int main(){
char a[85];
gets(a);
int len=strlen(a),flag=1;
for (int i = 0; i < strlen(a)/2; i++) {
if(a[i] != a[len-i-1]){
flag = 0;
break;
}
}
printf("%s\n",a);
if(flag) printf("Yes");
else printf("No");
return 0;
}
解法3:翻转原串
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
StringBuffer buffer = new StringBuffer();
String str = scanner.nextLine();
buffer.append(str);
System.out.println(str);
if(str.equals(buffer.reverse().toString())) {
//将字符串翻转,和原串比较
System.out.println("Yes");
}
else{
System.out.println("No");
}
}
}
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/139842.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...