Skip to content

Latest commit

 

History

History
68 lines (44 loc) · 1.14 KB

ShuffleTwoStrings.md

File metadata and controls

68 lines (44 loc) · 1.14 KB

Problem Link

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class ShuffleTwoStrings
{
	
	static boolean compareFreq(int[] freq, int[] freqW) {

		for(int i=0;i<256;i++){
			if(freq[i]!=freqW[i])
				return false;
		}
		return true;
	}

	static boolean isShuffleTwoStrings(String patt, String txt) {

		int N = patt.length();
		int M = txt.length();

		if(N > M)
			return false;

		int[] freq = new int[256];

		int[] freqW = new int[256];

		int i;
		for(i=0;i<N;i++){

			freq[patt.charAt(i)]++;

			freqW[txt.charAt(i)]++;
		}

		if(compareFreq(freq, freqW))
			return true;

		for(;i<M;i++){

			freqW[txt.charAt(i)]++;


			freqW[txt.charAt(i-N)]--;
			
			if(compareFreq(freq, freqW))
				return true;

		}
		return false;
	}
	
	public static void main(String[] args) throws IOException {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String pattern = br.readLine();
		String txt = br.readLine();

		System.out.println(isShuffleTwoStrings(pattern, txt));
	}
}