精华内容
下载资源
问答
  • java回文串

    2012-11-01 13:26:10
    程序开始时,弹出文件框,输入字符串,然后判断输入的字符串是不是回文串。程序结束时弹出文本框显示结果。
  • java回文串的判断

    2013-11-05 10:22:55
    可以判断回文串。可以忽略大小写和逗号句号等问题。并且以框体的形式显示
  • Java回文串判定

    2020-10-02 22:29:15
    Java回文串判定 Description 输入一串字符(长度小于100),判断该串字符是否是回文串(正序读与逆序读内容相同)。 Input 输入一串字符(长度小于100)。 Output 若该串字符是回文串输出“yes",否则输出”no“。...

    Java—回文串判定

    Description
    输入一串字符(长度小于100),判断该串字符是否是回文串(正序读与逆序读内容相同)。

    Input
    输入一串字符(长度小于100)。

    Output
    若该串字符是回文串输出“yes",否则输出”no“。

    Sample
    Input
    asdfgfdsa
    Output
    yes

    import java.util.Scanner;
    
    public class Main {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Scanner reader = new Scanner(System.in);
    		int i, l, j;
    		String str;
    		int a[] = new int[110];
    		str = reader.nextLine();
    		l = str.length();
    		for (i = 0; i < l; i++) {
    			a[i] = str.charAt(i);
    		}
    		int flag = 1;
    		for (i = 0, j = l - 1; i < j; i++, j--) {
    			if (a[i] != a[j]) {
    				flag = 0;
    				break;
    			}
    		}
    		if (flag == 1) {
    			System.out.print("yes");
    		} else {
    			System.out.print("no");
    		}
    	}
    
    }
    
    展开全文
  • java —— 回文串字符

    2021-01-15 19:22:36
    java —— 回文串字符 题目详情 “xyzyx”是一个回文字符串,所谓回文字符串就是指正读反读均相同的字符序列, 如“席主席”、“记书记”、“aha”和“ahaha”均是回文,但“ahah”不是回文。 输入一行字符(仅包含...

    java —— 回文串字符

    题目详情

    “xyzyx”是一个回文字符串,所谓回文字符串就是指正读反读均相同的字符序列,
    如“席主席”、“记书记”、“aha”和“ahaha”均是回文,但“ahah”不是回文。
    输入一行字符(仅包含小写英文字母a~z)请判断这行字符串是否为回文。

    输入格式:

    只有一行,仅包含小写英文字母a~z的字符串,长度小于等于100。
    

    输出格式:

    只有一行,如果是回文请输出YES,不是回文则输出NO,请注意大小写。
    

    样例1:

    输入:
    ahah
    
    输出:
    NO
    

    样例2:

    输入:
    ahaha
    
    输出:
    YES
    

    代码如下:

    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            char[] str = sc.next().toCharArray(); // 输入一个字符串并转换为字符数组
            if (str.length % 2 == 0){ // 判断字符数组的长度
                if (Judge(str, str.length / 2) == 1){
                    System.out.println("YES");
                }else System.out.println("NO");
            }else{
                if (Judge(str, (str.length + 1) / 2) == 1){
                    System.out.println("YES");
                }else System.out.println("NO");
            }
        }
    
        public static int Judge(char[] a, int n) { // 判断是否是回文字符串
            int i = 0;
            while (i < n) {
                if (a[i] == a[a.length - i - 1])
                    i++;
                else return 0;
            }
            return 1;
        }
    }
    

    代码二:(提供者Julpsztx)

    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            char[] str = sc.next().toCharArray(); // 输入一个字符串并转换为字符数组
            System.out.println(Judge(str, str.length / 2) ? "YES" : "NO");
        }
    
        public static boolean Judge(char[] a, int n) { // 判断是否是回文字符串
            int i = 0;
            while (i < n) {
                if (a[i] == a[a.length - i-1])
                    i++;
                else return false;
            }
            return true;
        }
    }
    

    END

    展开全文
  • Java实现回文串的四种方式

    万次阅读 2018-06-05 21:33:06
    Java实现回文串的两种方式1、什么是回文串? “回文串”是一个正读和反读都一样的字符串,如“level”或者“noon”等就是回文串。2、回文串的两种Java实现(1)字符串倒置后逐一比较法public static boolean ...

    Java实现回文串的两种方式

    1、什么是回文串?

        “回文串”是一个正读和反读都一样的字符串,如“level”或者“noon”等就是回文串。

    2、回文串的两种Java实现

    (1)字符串倒置后逐一比较法

    public static boolean isPalindrome(String str) {
            StringBuffer sb = new StringBuffer(str);
            sb.reverse();// 把字符串反转
            int count = 0;
            for (int i = 0; i < str.length(); i++) {
                if (str.charAt(i) == sb.charAt(i)) {
                    count++; //统计相同字符的个数
                }
            }
            if (count == str.length()) {
                return true;
            } else {
                return false;
            }

        }

    (2)字符串倒置后创建新字符串,两字符串直接比较法

    public static boolean isPalindrome(String str) {
            StringBuilder sb = new StringBuilder(str);
            sb.reverse(); // 将字符串反转
            String newStr = new String(sb);
            if (str.equals(newStr)) {
                return true;
            } else {
                return false;
            }
      }

    (3)字符串首尾元素对比法

    实现一:

    public static boolean isPalindrome(String str){
            if(str == null || "".equals(str)){
                    return false;
             }
             int i;
             int j = str.length() - 1;
             String[] strings = str.split("");
             for (i = 0; i <= j; i++,j--) {
                 if(!strings[i].equals(strings[j])){
                     return false;
                 }
             }
             return true;
     }

    实现二:

    public static boolean isPalindrome(String str) {
            StringBuffer sb = new StringBuffer(str);
            sb.reverse();// 把字符串反转
            int count = 0;
            for (int i = 0; i < str.length() / 2; i++) {  
                if ((str.substring(i, i + 1)).equals(str.substring(str.length() - 1- i, str.length() - i))) {  
                        count++;  
                    }  
                }  
            if (count == str.length() / 2) {
                return true;
            } else {
                return false;
            }
        }

    (4)利用入栈、出栈字符串的一半字符和剩余一半元素进行对比(借助数据结构---栈)

    public static boolean isPalindrome(String str) {
            // 堆栈一
            List<Character> stack1 = new ArrayList<Character>();
            // 堆栈二
            List<Character> stack2 = new ArrayList<Character>();
            // 字符串长度的一半
            int haflen = str.length() / 2;
            for (int i = 0; i < haflen; i++) {
                // 字符进栈
                stack1.add(str.charAt(i));
                // 倒序进栈
                stack2.add(str.charAt(str.length() - i - 1));
            }
            // 标识符
            boolean bFlag = true;
            // 出栈并比较
            for (int i = haflen - 1; i >= 0; i--) {
                if (stack1.remove(i) != stack2.remove(i)) {
                    bFlag = false;
                    break;
                }
            }
            // 返回比对结果
            return bFlag;
        }

    展开全文
  • Java实现最长回文串

    万次阅读 多人点赞 2019-07-21 15:54:04
    此处,首先枚举出回文串的中心位置,然后,再在该位置上分别向左和向右扩展,记录并更新得到的最长回文串的长度。 package com.liuzhen.string_1; import java.util.Scanner; public class String...

    1 问题描述
    给定一个字符串,求它的最长回文子串的长度。

    2 解决方案
    2.1 中心扩展法

    此处,首先枚举出回文串的中心位置,然后,再在该位置上分别向左和向右扩展,记录并更新得到的最长回文串的长度。

    package com.liuzhen.string_1;
    
    import java.util.Scanner;
    
    public class StringLongestPalindrome {
        /*
         * 参数A:给定字符串
         * 函数功能:返回字符串A中最长回文串的长度
         */
        public int getLongestPalindrome(String A){
            char[] arrayA = A.toCharArray();
            int max = 0;
            int tempMax = 0;
            if(A.equals("") || A.equals(null))
                return 0;
            for(int i = 0;i < arrayA.length;i++){  //i为回文串的中心位置
                //当回文串位数为奇数时
                for(int j = 0;(i-j) >= 0 && (i+j) < arrayA.length;j++){
                    if(arrayA[i-j] != arrayA[i+j])
                        break;
                    tempMax = 2*j + 1;
                }
                if(tempMax > max)
                    max = tempMax;
                //当回文串位数为偶数时
                for(int j = 0;(i-j) >= 0 && (i+j+1) < arrayA.length;j++){
                    if(arrayA[i-j] != arrayA[i+j+1])
                        break;
                    tempMax = 2*j + 2;
                }
                if(tempMax > max)
                    max = tempMax;
            }
            return max;
        }
        
        public static void main(String[] args){
            StringLongestPalindrome test = new StringLongestPalindrome();
            Scanner in = new Scanner(System.in);
            System.out.println("请输入一个字符串:");
            String A = in.nextLine();
            int maxA = test.getLongestPalindrome(A);
            System.out.println("输入目标字符串中最长回文串的长度为:"+maxA);
        }
    }
    

    运行结果:

    请输入一个字符串:
    abba
    输入目标字符串中最长回文串的长度为:4
    
    
    请输入一个字符串:
    aabbbbba
    输入目标字符串中最长回文串的长度为:7
    
    
    请输入一个字符串:
    我爱爱我我我啊
    输入目标字符串中最长回文串的长度为:4
    

    2.2 Manacher算法

    package com.liuzhen.practice;
    
    import java.util.Scanner;
    
    public class Main {
        
        public void Manacher(String A) {
            StringBuffer s = new StringBuffer("$#");
            for(int i = 0;i < A.length();i++) {
                s.append(A.charAt(i));
                s.append("#");
            }
            A = s.toString();
            int[] P = new int[A.length()];
            int mx = 0, id = 0;
            for(int i = 1;i < A.length();i++) {
                if(mx > i)
                    P[i] = Math.min(P[2 * id - i], mx - i);
                else
                    P[i] = 1;
                while(i + P[i] < A.length() && i - P[i] >= 0 && A.charAt(i + P[i]) == A.charAt(i - P[i])) {
                    P[i]++;
                }
                if(P[i] + i > mx) {
                    mx = i + P[i];
                    id = i;
                }
            }
            int result = -1;
            int i = 0, t = 0;
            for(;i < P.length;i++) {
                if(P[i] > result) {
                    result = P[i];
                    t = i;
                }
            }
            for(int j = t - result + 1;j <= t + result - 1;j++) {
                if(A.charAt(j) != '#')
                System.out.print(A.charAt(j));
            }
            System.out.println("\n最长字符串长度:"+(result-1));
        }
        
        public static void main(String[] args) {
            Main test = new Main();
            Scanner in = new Scanner(System.in);
            String A = in.next();
            test.Manacher(A);
        }
    }
    

    运行结果:

    abba
    abba
    最长字符串长度:4
    12321
    最长字符串长度:5
    
    
    我爱你爱我
    我爱你爱我
    最长字符串长度:5
    
    
    我爱她
    我
    最长字符串长度:1
    
    展开全文
  • 验证回文串java实现

    2020-04-27 18:06:59
    给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明:本题中,我们将空字符串定义为有效的回文串。 示例 1: 输入: "A man, a plan, a canal: Panama" 输出: true 示例 2: ...
  • Java判断一个回文串

    千次阅读 2019-03-14 15:57:31
    1.如果回文串是一个纯数字的数: public static void main(String[] args) { System.out.println(isHuiWen(3245423)); } private static boolean isHuiWen(int target) { int temp=target; ...
  • Java 回文串判定

    2020-02-02 12:09:35
    回文串是指从左到右读和从右到左读是一样的。也就是说字符串和它翻转后的结果是相同的。 代码如下: public class 回文串判定 { public static void main(String[] args){ String str = "abcba"; System.out....
  • JAVA算法:回文字符相关问题详解(回文字符总结) Q1. 编写一个工具方法判断给定的字符是否为回文字符 例如:给定一个字符“aabbaa”,判断该字符是否为回文字符。 算法设计如下: /* * 给定...
  • 回文数 问题描述  1221是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位十进制数。 ————————————————————————————————————————————————...
  • java回文串判定

    2017-04-18 20:54:13
    输入一串字符(长度小于100),判断该串字符是否是回文串(正序读与逆序读内容相同)。 Input 输入一串字符(长度小于100)。 Output 若该串字符是回文串输出“yes",否则输出”no“。 Example Input...
  • JAVA实现分割回文串

    2019-10-20 15:35:40
    题干 LeetCode链接:... 给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。 返回 s 所有可能的分割方案。 示例: 输入: "aab" 输出: [ ["aa","b"], ["a"...
  • 要求2): 是回文串输出true,不是输出false; 完整代码如下: import java.util.Scanner; public class Stack { char [] ch; public Stack(){ ch = new char [0]; } //压栈 -添加元素 public void
  • import java.util.Scanner; import javax.swing.JOptionPane; //import java.util.Strin public class huiwenchuan { public static void main(String[] args) { // TODO Auto-generated method...
  • java判断回文字符的方法

    千次阅读 2020-03-20 22:49:31
    首先介绍下什么是回文字符回文字符就是关于中心对称的字符,比如 测试下
  • 在本篇文章里小编给各位整理的是一篇关于Java判断字符串回文的代码实例内容,需要的朋友们可以跟着学习参考下。
  • java判断回文字符几种简单的实现

    万次阅读 多人点赞 2017-10-18 00:49:49
    java判断回文字符几种简单的实现
  • 最长回文串Java实现) 题目:给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。 在构造过程中,请注意区分大小写。比如 “Aa” 不能当做一个回文字符串。 注意: 假设字符串的长度...
  • import java.util.Scanner; public class Test{ //计数(不包括一个字符的情况) static int count = 0; public static void main(String[] args){ Scanner sc = new Scanner(System.in); String s = sc....
  • 回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。花花非常喜欢这种拥有对称美的回文串,生日的时候她得到两个礼物分别是字符串A和字符串B。现在她非常好奇有没有办法将字符串B...
  • Java 验证回文串

    2021-11-22 14:26:47
    编写程序,验证一个字符串是否为回文串:是否从前读它和从后读它都是一样的。例如,mom,dad是回文串。该程序接收用户输入的字符串,判断是否为回文串,然后将判断的结果输出。在验证回文串时,忽略大小写、空格和...
  • 回文串:一个字符串如果从前往后读和从后往前读都一样,那么该字符串就被称之为”回文串“,例如:上海自来水来自海上等等。 二、算法设计 对于一个字符串,先判断该字符串的第一个字符和最后一个字符是否相等,如果...
  • JAVA 验证回文串

    2021-01-27 16:49:09
    要求:给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 思路:先通过 StringBuffer 类提取原字符串里的大小写字母和数字以此构成新的字符串,然后用 StringBuffer类 的 reverse...
  • 验证回文串Java实现

    2020-12-01 17:13:07
    给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明:本题中,我们将空字符串定义为有效的回文串。 示例 1: 输入: “A man, a plan, a canal: Panama” 输出: true 示例 2: ...
  • * 验证回文串 * 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 * &lt;p&gt; * 说明:本题中,我们将空字符串定义为有效的回文串。 * &lt;p&gt; * 示例 ...
  • 本文给大家介绍的是如何使用Java实现查找当前字符串最大回文串代码,非常的简单实用,有需要的小伙伴可以参考下

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,919
精华内容 5,967
关键字:

java回文串

java 订阅