[LintCode] 字符串置换 String Permutation
来源:互联网 发布:2017淘宝大学视频教程 编辑:程序博客网 时间:2024/06/07 14:50
给定两个字符串,请设计一个方法来判定其中一个字符串是否为另一个字符串的置换。
置换的意思是,通过改变顺序可以使得两个字符串相等。
样例
“abc” 为 “cba” 的置换。
“aabc” 不是 “abcc” 的置换。
Given two strings, write a method to decide if one is a permutation of the other.
Example
abcd is a permutation of bcad, but abbe is not a permutation of abe
时O(n) 空O(n)
public class Solution { /** * @param A a string * @param B a string * @return a boolean */ public boolean stringPermutation(String A, String B) { if(A == B) return true; if(null == A || null == B || A.length() != B.length()) return false; if(A.equals(B)) return true; Map<Character, Integer> map = new HashMap<Character, Integer>(); for(int i = 0; i < A.length(); i++) { char a = A.charAt(i); if(map.containsKey(a)) { if(map.get(a)+1 == 0) { map.remove(a); }else{ map.put(a, map.get(a)+1); } }else { map.put(a, 1); } char b = B.charAt(i); if(map.containsKey(b)) { if(map.get(b)-1 == 0) { map.remove(b); }else{ map.put(b, map.get(b)-1); } }else { map.put(b, -1); } } if(map.size() == 0) return true; else return false; }}
0 0
- [LintCode] 字符串置换 String Permutation
- 567. Permutation in String 字符串置换
- LintCode 字符串置换 JAVA
- LintCode之字符串置换
- LintCode-字符串置换
- lintcode--字符串置换
- LintCode:字符串置换211
- LintCode 字符串置换
- 字符串置换-lintcode-c++
- LintCode 字符串置换 python
- 字符串置换 -LintCode
- Lintcode字符串置换
- lintcode 211 字符串置换
- Lintcode 211 :字符串置换
- LintCode-[容易] 211. 字符串置换
- 字符串置换 LintCode by python
- LintCode-[容易] 211. 字符串置换
- 【LintCode】Rotate String 旋转字符串
- Android网络开源库-Retrofit(二) 文件上传、下载及进度监听
- Android基础:MD5加密
- 图片超链接
- 简单介绍基于WEB开发的HTTP协议
- CodeForces - 554A Kyoya and Photobooks (水)
- [LintCode] 字符串置换 String Permutation
- 解决react-native run-android报DeviceException Could not create ADB Bridge错误
- Dispatcher initialization failed:Unable to load configuration
- mqtt桥接模式部署配置
- javascript 上传文件到 oss
- 程序设计篇(1):学生经验值管理系统(单链表实现)
- 循环队列的综合操作(出入队、获取队长度)C语言实现
- C# structures 0011
- DES 算法