+ 1
AntiCman and String (java)
Alisha, now the ex-girlfriend of Cman has become anti of Cman and now she challenges him to compare two large strings of equal length and print the common letters in lexicographical order. input: first line contains no. of test cases then 2t lines each containing string of lowercase letters. output: for each test cases print the resulting string. sample Input: 1 abcda aabce Sample Output: aabc Constraints: 1<=t<=100 1<=length of string<=10^5
2 Answers
0
Try this
import java.util.*;
class Ass{
	static char[] toChar(String str){
		char[] ch = new char[str.length()];
		for (int i = 0;i<str.length() ;i++ ) {
			ch[i] = str.charAt(i);
		}
		return ch;
	}
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		String s1 = scan.next();
		String s2 = scan.next();
		char[] s12 = toChar(s1);
		char[] s21 = toChar(s2);
		String result = "";
		for (int i = 0;i<s12.length ;i++ ) {
			for (int j = 0;j<s21.length ;j++ ) {
				if (s12[i]==s21[j]) {
					result+=s12[i];
					s21[j]='\u0000';
				}
			}
		}
		System.out.println(result);
	}
}
0
This could work...
import java.util.*;
/**
 * Created by sharique on 1/5/2017.
 */
public class hello {
    static String Sort(String input){
        char[] chars= input.toCharArray();
        Arrays.sort(chars);
        String sorted = new String(chars);
        return sorted;
    }
    public static void main(String[] args){
        Scanner input=new Scanner(System.in);
        String result="";
        int t =input.nextInt();
        for (int x=0;x<t;x++){
            String str1=Sort(input.next());
            String str2=Sort(input.next());
            int m=0;
            for (int z=0;z<str1.length();z++){
                if (str2.indexOf(str1.charAt(z),m)>=0){
                    m++;
                    result+=str1.charAt(z);
                }
            }
            System.out.println(result);
        }
    }
}



