首页 > 其他 > 详细

回文排列

时间:2021-04-12 22:09:41      阅读:19      评论:0      收藏:0      [点我收藏+]

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

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

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

 示例:

输入:"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);
    }
}

 

回文排列

原文:https://www.cnblogs.com/braveym/p/14649333.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!