码迷,mamicode.com
首页 > 其他好文 > 详细

面试题 01.04. 回文排列

时间:2020-05-07 00:51:56      阅读:82      评论:0      收藏:0      [点我收藏+]

标签:tco   面试   示例   har   ==   problems   nta   style   方法   

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

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

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

示例1:

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


链接:https://leetcode-cn.com/problems/palindrome-permutation-lcci

技术图片

 

方法一:利用HashSet原理,采用消消乐,如果集合里面没有当前的字符就添加,如果有就消除

public static  boolean canPermutePalindrome(String s) {
        if(s==null || s.length()<1){
            return false ;
        }
        Set<Character> set = new HashSet<Character>();
        for(char ch :s.toCharArray()) {
            if(set.contains(ch)) {
                set.remove(ch);
            }else {
                set.add(ch);
            }
        }
        return set.size()<=1 ;
    }

方法二:模拟哈希表,统计每个字符的个数,如果字母的次数是奇数的次数>1那么返回F

public boolean canPermutePalindrome(String s) {
        int oddNum=0;
        int [] arr = new int[128];
        for(int i=0;i<s.length();i++) {
            arr[s.charAt(i)]++;
        }
        for(int i=0;i<arr.length;i++) {
            if(arr[i]%2!=0) oddNum++;
        }
        if(oddNum>1) return false;
        return true ;
    }

 

面试题 01.04. 回文排列

标签:tco   面试   示例   har   ==   problems   nta   style   方法   

原文地址:https://www.cnblogs.com/cocobear9/p/12840006.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!