Sanjay Nayak
BAN USERO(n) solution
private boolean stringContainsAnagramOfOtherString() {
String a = "xyz";
String b = "afdgzyxksldfm"; // afdgyzxksldfm
boolean isMapRemoveStarted = false;
char[] achar = a.toCharArray();
char[] bchar = b.toCharArray();
Map<Integer,Integer> map = new HashMap<Integer,Integer>();
for (int i = 0; i < achar.length; i++) {
int ascii = (int) achar[i];
map.put(ascii,ascii);
}
for (int i = 0, j = 0; i < bchar.length && j < achar.length ; i++) {
int ascii = (int) bchar[i];
if(map.get(ascii)!=null){
isMapRemoveStarted = true;
System.out.println(map.get(ascii)+" ");
map.remove(ascii);
j++;
}else{
if(isMapRemoveStarted == true)
j++;
}
}
if(map.isEmpty()){
return true;
}else{
return false;
}
}
O(n) solution in Java.
private boolean stringContainsAnagramOfOtherString() {
String a = "xyz";
String b = "afdgzyxksldfm"; // afdgyzxksldfm
boolean isMapRemoveStarted = false;
char[] achar = a.toCharArray();
char[] bchar = b.toCharArray();
Map<Integer,Integer> map = new HashMap<Integer,Integer>();
for (int i = 0; i < achar.length; i++) {
int ascii = (int) achar[i];
map.put(ascii,ascii);
}
for (int i = 0, j = 0; i < bchar.length && j < achar.length ; i++) {
int ascii = (int) bchar[i];
if(map.get(ascii)!=null){
isMapRemoveStarted = true;
System.out.println(map.get(ascii)+" ");
map.remove(ascii);
j++;
}else{
if(isMapRemoveStarted == true)
j++;
}
}
if(map.isEmpty()){
return true;
}else{
return false;
}
}
O(n) solution in Java.
private boolean stringContainsAnagramOfOtherString() {
String a = "xyz";
String b = "afdgzyxksldfm"; // afdgyzxksldfm
boolean isMapRemoveStarted = false;
char[] achar = a.toCharArray();
char[] bchar = b.toCharArray();
Map<Integer,Integer> map = new HashMap<Integer,Integer>();
for (int i = 0; i < achar.length; i++) {
int ascii = (int) achar[i];
map.put(ascii,ascii);
}
for (int i = 0, j = 0; i < bchar.length && j < achar.length ; i++) {
int ascii = (int) bchar[i];
if(map.get(ascii)!=null){
isMapRemoveStarted = true;
System.out.println(map.get(ascii)+" ");
map.remove(ascii);
j++;
}else{
if(isMapRemoveStarted == true)
j++;
}
}
if(map.isEmpty()){
return true;
}else{
return false;
}
}
O(n) solution in Java.
private boolean stringContainsAnagramOfOtherString() {
String a = "xyz";
String b = "afdgzyxksldfm"; // afdgyzxksldfm
boolean isMapRemoveStarted = false;
char[] achar = a.toCharArray();
char[] bchar = b.toCharArray();
Map<Integer,Integer> map = new HashMap<Integer,Integer>();
for (int i = 0; i < achar.length; i++) {
int ascii = (int) achar[i];
map.put(ascii,ascii);
}
for (int i = 0, j = 0; i < bchar.length && j < achar.length ; i++) {
int ascii = (int) bchar[i];
if(map.get(ascii)!=null){
isMapRemoveStarted = true;
System.out.println(map.get(ascii)+" ");
map.remove(ascii);
j++;
}else{
if(isMapRemoveStarted == true)
j++;
}
}
if(map.isEmpty()){
return true;
}else{
return false;
}
}
private static String removeDuplicate(String str) {
StringBuffer sb = new StringBuffer();
char[] array = str.toCharArray();
int[] letter = new int[256];
for (int i = 0; i < array.length; i++) {
int ascii = (int)array[i];
if(letter[ascii]==0){
sb.append(array[i]);
} letter[ascii] = 1;
}
return sb.toString();
}
- Sanjay Nayak June 27, 2017