给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。这里规定大小写为不同字符,且考虑字符串重点空格。 给定一个string stringA和一个string stri
2016-04-30 23:49
711 查看
**给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。这里规定大小写为不同字符,且考虑字符串重点空格。
给定一个string stringA和一个string stringB,请返回一个bool,代表两串是否重新排列后可相同。保证两串的长度都小于等于5000。
测试样例:
“This is nowcoder”,”is This nowcoder”
返回:true
“Here you are”,”Are you here”
返回:false**
package Question1_3;
public class QuestionB {
public static boolean permutation(String s, String t) {
if (s.length() != t.length()) {
return false;
}
}
给定一个string stringA和一个string stringB,请返回一个bool,代表两串是否重新排列后可相同。保证两串的长度都小于等于5000。
测试样例:
“This is nowcoder”,”is This nowcoder”
返回:true
“Here you are”,”Are you here”
返回:false**
package Question1_3; public class Question { public static String sort(String s) { char[] content = s.toCharArray(); java.util.Arrays.sort(content); return new String(content); } public static boolean permutation(String s, String t) { return sort(s).equals(sort(t)); } public static boolean anagram(String s, String t) { if (s.length() != t.length()) return false; int[] letters = new int[128]; int num_unique_chars = 0; int num_completed_t = 0; char[] s_array = s.toCharArray(); for (char c : s_array) { // count number of each char in s. if (letters[c] == 0) ++num_unique_chars; ++letters[c]; } for (int i = 0; i < t.length(); ++i) { int c = (int) t.charAt(i); if (letters[c] == 0) { // Found more of char c in t than in s. return false; } --letters[c]; if (letters[c] == 0) { ++num_completed_t; if (num_completed_t == num_unique_chars) { // it誷 a match if t has been processed completely return true; //return i == t.length() - 1; } } } return false; } public static void main(String[] args) { String[][] pairs = {{"apple", "papel"}, {"carrot", "tarroc"}, {"hello", "llloh"}}; for (String[] pair : pairs) { String word1 = pair[0]; String word2 = pair[1]; boolean anagram = permutation(word1, word2); System.out.println(word1 + ", " + word2 + ": " + anagram); System.out.println(anagram(word1, word2)); } } }
package Question1_3;
public class QuestionB {
public static boolean permutation(String s, String t) {
if (s.length() != t.length()) {
return false;
}
int[] letters = new int[128]; char[] s_array = s.toCharArray(); for (char c : s_array) { // count number of each char in s. letters[c]++; } for (int i = 0; i < t.length(); i++) { int c = (int) t.charAt(i); if (--letters[c] < 0) { return false; } } return true; } public static void main(String[] args) { String[][] pairs = {{"apple", "papel"}, {"carrot", "tarroc"}, {"hello", "llloh"}}; for (String[] pair : pairs) { String word1 = pair[0]; String word2 = pair[1]; boolean anagram = permutation(word1, word2); System.out.println(word1 + ", " + word2 + ": " + anagram); } }
}
相关文章推荐
- n人站圈报数,3 出列。 最后留下的人原来的位置 3种方式
- 请编写一个算法,若MxN矩阵中某个元素为0,则将其所在的行与列清零。 给定一个MxN的int[][]矩阵(C++中为vector>)mat和矩阵的阶数n,请返回完成操作后的int[][]矩阵(C++中
- 华为OJ——识别有效的IP地址和掩码并进行分类统计
- JAVA-二分法查找算法总结
- 快排解析
- Java中交集、并集、差集的实现
- Java多线程编程(一)
- 请实现一个算法,确定一个字符串的所有字符是否全都不同。这里我们要求不允许使用额外的存储结构
- 20145302张薇《Java程序设计》第九周学习总结
- 20145238-荆玉茗 《Java程序设计》第9周学习总结
- java设计模式
- Spring高级应用之注入嵌套Bean
- java环境变量设置
- 第一个Java程序
- Spring高级应用之注入各类集合
- Spring事务——Spring 2.X的事务配置策略
- Spring事务——使用TransactionProxyFactoryBean创建事务代理
- 深入理解Java虚拟机(一)-jvm运行时数据区
- spring mvc的类型转换
- java基础之异常处理(一)