zoukankan      html  css  js  c++  java
  • 回文排列

    给定一个字符串,编写一个函数判定其是否为某个回文串的排列之一。

    回文串是指正反两个方向都一样的单词或短语。排列是指字母的重新排列。

    回文串不一定是字典当中的单词。

     示例:

    输入:"tactcoa"
    输出:true(排列有"tacocat"、"atcocta",等等)

    参考代码:

    package com.gong;
    
    import java.util.HashSet;
    /**
     * 消消乐思想,要形成回问串,每个字符都是两两出现的,只允许有一个字符是单独的或者没有单独的字符
     * 类似玩消消乐一样,两个一样的字符我们就消除
     * */
    public class HuiWenChuan {
        public static boolean canPermutePalindrome(String s){
            if(s==null||s.length()<1){
                return false;
            }
            char [] chars=s.toCharArray();//字符串转换成字符数组
            HashSet<Character> characters=new HashSet<Character>();
            for(Character character : chars){
                if(characters.contains(character)){
                    characters.remove(character);
                }else {
                    characters.add(character);
                }
            }
            return characters.size()<=1;
        }
    
        public static void main(String[] args) {
           String str="tactcoa";
           boolean result;
           result=canPermutePalindrome(str);
           System.out.println(result);
        }
    }
  • 相关阅读:
    校园导游图的课程设计(三)
    校园导游图的课程设计(二)
    vim中Mapping already in use: "<LocalLeader>is", mode "n"错误解决的方法解释
    fedora 的截图快捷键
    校园导游图的课程设计(一)
    theos(一)
    脱壳
    初识Mach-O
    Cycript(二)
    Cycript(一)
  • 原文地址:https://www.cnblogs.com/braveym/p/14649333.html
Copyright © 2011-2022 走看看