zoukankan      html  css  js  c++  java
  • 程序员面试金典-面试题 01.04. 回文排列

    题目:

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

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

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

    示例1:

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

    分析:

    我们可以观察回文串字符的特征,出现奇数次数的字符最多只能有一个,基于这个条件,我们可以统计所有字符出现的频率,然后判断其中奇数次数,大于1直接返回false即可。

    程序:

    class Solution {
        public boolean canPermutePalindrome(String s) {
            int[] arr = new int[128];
            for(char ch:s.toCharArray()){
                arr[ch]++;
            }
            int odds = 0;
            for(int i = 0; i < 128; ++i){
                if(arr[i] % 2 == 1)
                    odds++;
                if(odds > 1)
                    return false;
            }
            return true;
        }
    }
  • 相关阅读:
    安装ActivePython
    安装Selenium
    安装setuptools与pip
    windows下测试环境搭建--Python安装
    编程语言 标记语言 脚本语言
    XMLHttpRequest 对象
    事务
    jsp
    Cookie案例-显示用户的上次访问时间代码实现
    事务处理
  • 原文地址:https://www.cnblogs.com/silentteller/p/12389790.html
Copyright © 2011-2022 走看看