267. Palindrome Permutation II
来源:互联网 发布:linux如何修改文件权限 编辑:程序博客网 时间:2024/05/20 15:42
Given a string s
, return all the palindromic permutations (without duplicates) of it. Return an empty list if no palindromic permutation could be form.
For example:
Given s = "aabb"
, return ["abba", "baab"]
.
Given s = "abc"
, return []
.
public class Solution { public List<String> generatePalindromes(String s) { List<String> res = new ArrayList<String>(); int[] map = new int[256]; for (char ch: s.toCharArray()) { map[ch] ++; } int count = 0; int j = 0; StringBuilder builder = new StringBuilder(); for (int i = 0; i < 256; i ++) { if (count == 0 && map[i] % 2 == 1) { j = i; count ++; } else if (map[i] % 2 == 1) { return res; } } if (j != 0) { map[j] --; builder.append((char)j); } helper(res, builder, map, s.length()); return res; } private void helper(List<String> list, StringBuilder builder, int[] map, int len) { if (builder.length() == len) { list.add(builder.toString()); } for (int i = 0; i < map.length; i ++) { if (map[i] <= 0) { continue; } map[i] -= 2; char temp = (char)i; builder.insert(0, temp).append(temp); helper(list, builder, map, len); builder.deleteCharAt(0); builder.deleteCharAt(builder.length() - 1); map[i] += 2; } }}
0 0
- 267. Palindrome Permutation II
- 267. Palindrome Permutation II
- LeetCode 267. Palindrome Permutation II
- LeetCode 267. Palindrome Permutation II
- [leetcode] 267. Palindrome Permutation II 解题报告
- [Leetcode] 267. Palindrome Permutation II 解题报告
- [LeetCode267]Palindrome Permutation II
- Palindrome Permutation II
- Palindrome Permutation II
- Palindrome Permutation II
- [LeetCode 267] Palindrome Permutation II
- Leetcode Palindrome Permutation I & II
- LeetCode 267. Palindrome Permutation II(对称排列)
- LeetCode 题解(242) : Palindrome Permutation II
- Palindrome Permutation
- Palindrome Permutation
- Palindrome Permutation
- Permutation II
- bzoj3653&cogs2211 谈笑风生
- 设计模式的总结二:创造型模式
- 好好吃饭的挑战100天
- Unity网络服务器搭建【中高级】
- 数据链路层三个问题---封装成帧、透明传输、差错检查
- 267. Palindrome Permutation II
- oracle基本命令集合(3)--分组与统计
- 【Java EE 】--JavaServer Faces 01
- 位异或运算符^的特点及面试题
- DPCM编码
- Linux 系统(ubuntu和CentOS)nginx服务器和php安装
- 数据结构(4)之递归
- 机器学习-周志华-个人练习10.6
- Struts2简述