zoukankan      html  css  js  c++  java
  • OJ刷题——排列对称串

    题目描述

    输入多个字符串,有些是对称的,有些是不对称的,请将那些对称的字符串按从小到大的顺序输出。字符串先以长度论大小,如果长度相同,再以ASCII码值为大小标准。

    输入

    输入第一行是一个整数n(1<=n<=100),接下来n行是n个字符串,每个字符串不大于200个字符。

    输出

    输出对称的那些串,并且要求按从小到大的顺序输出,每个字符串占一行。

    样例输入
    7
    123321
    123454321
    123
    321
    sdfsdfd
    121212
    after noon retfa
    
    样例输出
    123321
    123454321
    after noon retfa

    附上代码:
    import java.util.ArrayList;
    import java.util.Comparator;
    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            Scanner scan = new Scanner(System.in);
            ArrayList<String> al = new ArrayList<String>();
            while (scan.hasNextLine()) {
                String temp = scan.nextLine();
                if (isSymmetric(temp)) {
                    al.add(temp);
                }
            }
            al.sort(new Comparator<String>() {
    
                @Override
                public int compare(String o1, String o2) {
                    // TODO Auto-generated method stub
                    if (o1.length() < o2.length()) {
                        return -1;
                    } else if (o1.length() > o2.length()) {
                        return 1;
                    } else {
                        if (o1.compareTo(o2) > 0) {
                            return 1;
                        } else if (o1.compareTo(o2) < 0) {
                            return -1;
                        } else
                            return 0;
                    }
    
                }
    
            });
            for(String str : al) {
                System.out.println(str);
            }
        }
    
        public static boolean isSymmetric(String str) {
            int len = str.length();
            if(len==1) {
                return false;
            }
            for (int i = 0; i < len / 2; i++) {
                if (str.charAt(i) != str.charAt(len - i - 1)) {
                    return false;
                }
            }
            return true;
        }
    }
    
    
    
     
  • 相关阅读:
    (二)vue.js axios封装(参考)
    (一)vue.js 项目搭建(参考)
    Centos7 Mysql配置安装
    自我学习及提高
    (一)Angular2 项目搭建教程(参考)
    WordPress学习网站
    Excel A表与B表对比 并将A表的id写到B表中
    C# 递归文件夹 文件名 路径
    C# 递归生成树(无限级)
    Windows API Code Pack 获取文件缩略图
  • 原文地址:https://www.cnblogs.com/lzhxue/p/12759705.html
Copyright © 2011-2022 走看看