求职面试题(两个字符串是否包含相同的字符)
2015-03-26 21:42
232 查看
求职面试题(两个字符串是否包含相同的字符)
本篇博客包括针对题目包括两个比较字符串是否包括相同字符的方法:
(1)把字符串转化为数组,然后对数组排序,最后比较两字符串是否相等。
(2)以空间代替时间。
package com.robin.stringAndSZ;
import java.util.Arrays;
public class CompareString {
public static void compare1(String str1,String str2){
char[] str1ToChar = str1.toCharArray();
char[] str2ToChar = str2.toCharArray();
Arrays.sort(str1ToChar);
Arrays.sort(str2ToChar);
if(new String(str1ToChar).equals(new String(str2ToChar))){
System.out.println("the two string is composed of the same char");
}else{
System.out.println("the two string isn't composed of the same char");
}
}
public static void compare2(String str1,String str2){
char[] str1ToChar = str1.toCharArray();
char[] str2ToChar = str2.toCharArray();
char[] str = new char[256];
for(int i = 0; i < str.length; i++){
str[i] = 0;
}
for(int i = 0 ; i < str1ToChar.length ; i++){
str[str1ToChar[i]-'0']++;
}
for(int i = 0 ; i < str2ToChar.length ; i++){
str[str2ToChar[i]-'0']--;
}
for(int i = 0; i < str.length; i++){
if(str[i] != 0){
System.out.println("the two string isn't composed of the same char");
return;
}
}
System.out.println("the two string is composed of the same char");
}
public static void main(String[] args) {
String str1 = "aaaabbbb";
String str2 = "abababab";
String str3 = "abcabcab";
compare1(str1,str3);
compare1(str1,str2);
compare2(str1,str3);
compare2(str1,str2);
}
}
本篇博客包括针对题目包括两个比较字符串是否包括相同字符的方法:
(1)把字符串转化为数组,然后对数组排序,最后比较两字符串是否相等。
(2)以空间代替时间。
package com.robin.stringAndSZ;
import java.util.Arrays;
public class CompareString {
public static void compare1(String str1,String str2){
char[] str1ToChar = str1.toCharArray();
char[] str2ToChar = str2.toCharArray();
Arrays.sort(str1ToChar);
Arrays.sort(str2ToChar);
if(new String(str1ToChar).equals(new String(str2ToChar))){
System.out.println("the two string is composed of the same char");
}else{
System.out.println("the two string isn't composed of the same char");
}
}
public static void compare2(String str1,String str2){
char[] str1ToChar = str1.toCharArray();
char[] str2ToChar = str2.toCharArray();
char[] str = new char[256];
for(int i = 0; i < str.length; i++){
str[i] = 0;
}
for(int i = 0 ; i < str1ToChar.length ; i++){
str[str1ToChar[i]-'0']++;
}
for(int i = 0 ; i < str2ToChar.length ; i++){
str[str2ToChar[i]-'0']--;
}
for(int i = 0; i < str.length; i++){
if(str[i] != 0){
System.out.println("the two string isn't composed of the same char");
return;
}
}
System.out.println("the two string is composed of the same char");
}
public static void main(String[] args) {
String str1 = "aaaabbbb";
String str2 = "abababab";
String str3 = "abcabcab";
compare1(str1,str3);
compare1(str1,str2);
compare2(str1,str3);
compare2(str1,str2);
}
}
相关文章推荐
- 判断两个字符串是否包含相同的字符
- [每日练习]面试题--某个短字符串中的字符是否包含在长串中
- 比较两个字符串A和B,确定A中是否包含B中所有的字符。
- java 判断两个字符串是否由相同的字符组成 排序算法 空间换时间的方法
- 判断两个字符串是否有相同的字符
- 判断两个字符串是否由相同字符组成
- 6-2-1 字符串-字符串变量String-创建字符串变量-初始化字符串变量-字符串连接-输入字符串(单词、行)-对象变量的赋值-比较两个字符串是否同一个-比较两个字符串内容是否相同
- 判断两个字符串是否由相同的字符组成
- lintcode55:比较两个字符串A和B,确定A中是否包含B中所有的字符。
- 编写一个函数,判断两个字符串是否是是相互打乱的,也就是说它们有着相同的字符,但是对应不同的顺序。
- 1.4 写一个函数判断两个字符串是否使用相同的字符构成。
- 查找字符串中是否包含相同字符
- C#下比较两个等长字符串是否含有完全相同字符(忽略字符顺序)
- 比较两个等长字符串是否含有完全相同字符(忽略字符顺序)
- Arrays_Strings 判断两个字符串是否有相同的字符 @CareerCup
- 判断两个字符串是否由相同的字符组成
- [算法]判断两个字符串是否由相同的字符组成
- [leetcode 318]Maximum Product of Word Lengths--判断两个字符串是否有相同的字符
- 比较两个字符串A和B,确定A中是否包含B中所有的字符。
- asp.net下比较两个等长字符串是否含有完全相同字符(忽略字符顺序)