首页 > 试题广场 >

回文字符串

[编程题]回文字符串
  • 热度指数:23140 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
给出一个长度不超过1000的字符串,判断它是不是回文(顺读,逆读均相同)的。

输入描述:
输入包括一行字符串,其长度不超过1000。


输出描述:
可能有多组测试数据,对于每组数据,如果是回文字符串则输出"Yes!”,否则输出"No!"。
示例1

输入

hellolleh
helloworld

输出

Yes!
No!
Java 解法一
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()){
            String s = scanner.next();
            System.out.println(new StringBuilder(s).reverse().toString().equals(s)?"Yes!":"No!");
        }
    }
}

Java解法二
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()) {
            String s = scanner.nextLine();
            int i = 0;
            int j = s.length() - 1;
            while (i <= j) {
                if (s.charAt(i) == s.charAt(j)) {
                    i++;
                    j--;
                } else break;
            }
            System.out.println(i > j ? "Yes!" : "No!");
        }

    }
}



发表于 2020-03-17 16:54:48 回复(0)
import java.io.*;

public class Main{
    private static String idhuiwen(String string,int len) {
        for(int i = 0;i<len/2;i++) {
            if (string.charAt(i)!=string.charAt(len-i-1)) {
                return "No!";
            }
        }
        return "Yes!";
    }
    public static void main(String[] args) throws IOException{
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String aa;
        while((aa=reader.readLine())!=null) {
            int len = aa.length();
            
            System.out.println(idhuiwen(aa, len));
        
        }
        
        
    }
}
 
发表于 2019-01-18 21:41:01 回复(0)
import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            String str = sc.nextLine();
            StringBuilder sb = new StringBuilder(str);
            if(sb.toString().equals(sb.reverse().toString())){
                System.out.println("Yes!");
            }else{
                System.out.println("No!");
            }
        }
    }
}

发表于 2018-08-08 21:01:58 回复(0)
import java.util.Scanner;

public class Main {

@SuppressWarnings("resource")
public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);
String nextLine = scanner.nextLine();
StringBuilder stringBuilder = new StringBuilder(nextLine);
stringBuilder.reverse();
if (stringBuilder.toString().equals(nextLine)) {
System.out.println("Yes!");
}else {
System.out.println("No!");
}
}


}

发表于 2017-06-18 18:22:27 回复(0)
用Eclipse完全没错,提交到网站却出错······

public class Main {
	
	public void doSome(String string){
		if(string.length()%2!=0){
			int record1=0;
			for(int i=0;i<string.length()/2;i++){
				if(string.charAt(i)==string.charAt(string.length()-i-1)){
					record1++;
				}
			}
			if(record1==string.length()/2){
				System.out.println("Yes!");
			}else{
				System.out.println("No!");
			}
		}else{
			int record2=0;
			for(int i=0;i<=string.length()/2-1;i++){
				if(string.charAt(i)==string.charAt(string.length()-i-1)){
					record2++;
				}
			}
			if(record2==string.length()/2){
				System.out.println("Yes!");
			}else{
				System.out.println("No!");
			}
		}
	}

	public static void main(String[] args) {
		Scanner s=new Scanner(System.in);
		String input;
		Main m=new Main();
		while(true){
			input=s.nextLine();
			m.doSome(input);
		}
	}
}

发表于 2017-06-10 22:25:03 回复(0)

import java.util.Scanner;

public class Main {

public static void main(String[] args) {
    Scanner sc=new Scanner(System.in);
    while(sc.hasNext()){
        String s=sc.nextLine();
        boolean b=true;
        for(int i=0;i<s.length()/2;i++){
            if(s.charAt(i)!=s.charAt(s.length()-1-i)){
                b=false;
                break;
            }
        }
        if(b){
            System.out.println("Yes!");
        }else{
            System.out.println("No!");
        }
    }
    sc.close();
}

}

发表于 2017-05-31 15:22:30 回复(0)
import java.util.Scanner;
import org.omg.CORBA.PUBLIC_MEMBER;
public class Main {
public static void main(String[] args){
Scanner can = new Scanner(System.in);
while(can.hasNext()){
String str = can.next();
char[] strchar;
strchar = str.toCharArray();//将字符串转化为字符数组
int i;
int flag = 0;
for(i = 0;i<strchar.length/2;i++){
if(strchar[i]==strchar[str.length()-1-i]){
continue;
}
else {
flag = 1;
break;
}
}
if(flag == 0){System.out.println("Yes!");}
else {
System.out.println("No!");
}
}
}
}

发表于 2017-03-19 11:03:39 回复(0)
import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        while(sc.hasNext()){
String a=sc.next();
int m=0,i;
for(i=a.length()-1;i>=0;i--)
{
if(a.charAt(m)!=a.charAt(i))
{
System.out.println("No!");
break;
}
m++;
}
if(i==-1)
{
System.out.println("Yes!");
}
        }
    }
}//头尾同时比较即可

发表于 2017-03-09 09:29:53 回复(0)
import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
        while(scanner.hasNext()){
            String str=scanner.next();
            char[] strArray=str.toCharArray();
            boolean isYes=true;
            for(int i=0;i<strArray.length/2;i++){
                if(strArray[i]!=strArray[strArray.length-i-1]){
                    isYes=false;
                    break;
                }
                    
            }
            if(isYes) System.out.println("Yes!");
            else System.out.println("No!");
        }
    }
}

发表于 2017-03-02 17:05:36 回复(0)
import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner in=new Scanner(System.in);
        while(in.hasNext()){
            String str=in.nextLine();
            StringBuilder sb=new StringBuilder(str);
            String s=sb.reverse().toString();
            if(str.equals(s))
            System.out.println("Yes!");
            else
            System.out.println("No!");
        }
    }
}

发表于 2017-02-08 00:39:08 回复(0)
/*
唉,取巧的话,StringBuffer有个方法reverse(),可以把自身倒置,然后直接与原字符串compareTo()~~
*/
import java.util.Scanner;

public class Main {

public static void main(String[] args) {

String a = null;

StringBuffer sb = null;

Scanner in = new Scanner(System.in);

while(in.hasNext()){

a = in.nextLine();

sb = new StringBuffer(a);

sb = sb. reverse() ;

if(a.compareTo(sb.toString()) == 0)

System.out.println("Yes!");

else

System.out.println("No!");

}

in.close();

}

}
发表于 2017-02-06 17:08:57 回复(4)