Java/Algorithm

[Java-Algorithm] HackerRank Java - Two Strings 풀이

Jeong Jeon
반응형

1). 문제 : www.hackerrank.com/challenges/two-strings

 

Two Strings | HackerRank

Given two strings, you find a common substring of non-zero length.

www.hackerrank.com

2). 풀이 :

import java.io.*;
import java.math.*;
import java.security.*;
import java.text.*;
import java.util.*;
import java.util.concurrent.*;
import java.util.regex.*;

public class Solution {

    // Complete the twoStrings function below.
    static String twoStrings(String s1, String s2) {
            HashMap<String, Integer> s1Map = new HashMap<String, Integer>();
            for(int i=0; i<s1.length(); i++){
                if(!s1Map.containsKey(s1.substring(i,i+1))){
                    s1Map.put(s1.substring(i,i+1),1);
                }else{
                    s1Map.put(s1.substring(i,i+1),s1Map.get(s1.substring(i,i+1))+1);
                }
            }
            String result = "";
            for(int i=0; i<s2.length(); i++){
                if(s1Map.get(s2.substring(i,i+1))!=null){
                    result = "YES";
                    break;
                }else{
                    result = "NO";
                }
            }
            return result;
    }

    private static final Scanner scanner = new Scanner(System.in);

    public static void main(String[] args) throws IOException {
        BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(System.getenv("OUTPUT_PATH")));

        int q = scanner.nextInt();
        scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])?");

        for (int qItr = 0; qItr < q; qItr++) {
            String s1 = scanner.nextLine();

            String s2 = scanner.nextLine();

            String result = twoStrings(s1, s2);

            bufferedWriter.write(result);
            bufferedWriter.newLine();
        }

        bufferedWriter.close();

        scanner.close();
    }
}

어렵지 않아서 패스

반응형