Goldman Sachs Interview Question

1. IsAnagram 2. Count unique substring of length k

Interview Answers

Anonymous

Nov 11, 2017

class Solution { public static void main(String[] args) { System.out.println(isAnagram("kemo", "okme")); } public static boolean isAnagram(String s, String t) { String str =s.toLowerCase(); String str2 = t.toLowerCase(); if(str.length() != str2.length()) { return false; } //HashMap hasmap= new HashMap(); LinkedList ch = new LinkedList(); for (int i = 0; i 0){ return false; } return true; } }

1

Anonymous

Nov 12, 2017

Your "Anagram" program is wrong and you are using HaspMap (costly data structure) for wrong purpose I dont get what is your second program

Anonymous

Jan 30, 2018

import java.util.Arrays; public class Anagram { public static void main(String[] args) { System.out.println(isAnagram("silent","lentsi")); } private static boolean isAnagram(String string1, String string2) { if(string1.length() != string2.length()){ return false; } else{ char[] temp1 = string1.toCharArray(); Arrays.sort(temp1); char[] temp2 = string2.toCharArray(); Arrays.sort(temp2); for(int i=0;i

Anonymous

Feb 4, 2018

unique substring of length k in python: ================================ #!/usr/bin/python import argparse p = argparse.ArgumentParser() p.add_argument('-s') p.add_argument('-l', type=int) args = p.parse_args() entered_str = args.s entered_len = args.l print 'Entered string is:', entered_str print 'Entered length is:', entered_len #out_raw = list(entered_str) #print 'The raw char list is:', out_raw out_raw_k = entered_str[:entered_len] print 'The shortened raw char list is:', out_raw_k print 'Unique substring with length of 1:', set(out_raw_k) print 'Unique substring with length of 1 count:', len(set(out_raw_k)) out = [0, len(set(out_raw_k))] i = 2 while i <= entered_len: chunk = (len(out_raw_k)/i)*i sub_list = [ out_raw_k[y:y+i] for y in range(0, chunk, i) ] print 'Unique substring with length of', i, ':', set(sub_list) print 'Unique substring with length of', i, 'count:', len(set(sub_list)) out.append(len(set(sub_list))) i += 1 print 'Total unique substring count:', sum(out) =======Output from UNIX============ $ ./test -s phenomenon -l 3 Entered string is: phenomenon Entered length is: 3 Starting position: 0 substring count: 3 list: ['phe', 'nom', 'eno'] Starting position: 1 substring count: 3 list: ['hen', 'ome', 'non'] Starting position: 2 substring count: 2 list: ['eno', 'men'] Starting position: 3 substring count: 2 list: ['nom', 'eno'] Starting position: 4 substring count: 2 list: ['ome', 'non'] Starting position: 5 substring count: 1 list: ['men'] Starting position: 6 substring count: 1 list: ['eno'] Starting position: 7 substring count: 1 list: ['non'] Total substring list: ['phe', 'nom', 'eno', 'hen', 'ome', 'non', 'eno', 'men', 'nom', 'eno', 'ome', 'non', 'men', 'eno', 'non'] Total unique substring count: 7 list: set(['nom', 'non', 'ome', 'men', 'phe', 'eno', 'hen'])

Anonymous

Feb 4, 2018

Use Python for anagram: #!/usr/bin/python import argparse p = argparse.ArgumentParser() p.add_argument('-source') p.add_argument('-comp') args = p.parse_args() str_01 = args.source str_02 = args.comp str_01_list = sorted(list(str_01)) str_02_list = sorted(list(str_02)) if str_01_list == str_02_list: print 'Source string:', str_01, 'is anagram of the comparing string:', str_02 else: print 'Source string:', str_01, 'is NOT anagram of the comparing string:', str_02

Anonymous

Feb 4, 2018

unique substring of length k in python: ================================ #!/usr/bin/python import argparse p = argparse.ArgumentParser() p.add_argument('-s') p.add_argument('-l', type=int) args = p.parse_args() entered_str = args.s entered_len = args.l print 'Entered string is:', entered_str print 'Entered length is:', entered_len #out_raw = list(entered_str) #print 'The raw char list is:', out_raw out_raw_k = entered_str[:entered_len] print 'The shortened raw char list is:', out_raw_k print 'Unique substring with length of 1:', set(out_raw_k) print 'Unique substring with length of 1 count:', len(set(out_raw_k)) out = [0, len(set(out_raw_k))] i = 2 while i <= entered_len: chunk = (len(out_raw_k)/i)*i sub_list = [ out_raw_k[y:y+i] for y in range(0, chunk, i) ] print 'Unique substring with length of', i, ':', set(sub_list) print 'Unique substring with length of', i, 'count:', len(set(sub_list)) out.append(len(set(sub_list))) i += 1 print 'Total unique substring count:', sum(out) =======Output from UNIX============ $ ./test -s phenomenon -l 3 Entered string is: phenomenon Entered length is: 3 Starting position: 0 substring count: 3 list: ['phe', 'nom', 'eno'] Starting position: 1 substring count: 3 list: ['hen', 'ome', 'non'] Starting position: 2 substring count: 2 list: ['eno', 'men'] Starting position: 3 substring count: 2 list: ['nom', 'eno'] Starting position: 4 substring count: 2 list: ['ome', 'non'] Starting position: 5 substring count: 1 list: ['men'] Starting position: 6 substring count: 1 list: ['eno'] Starting position: 7 substring count: 1 list: ['non'] Total substring list: ['phe', 'nom', 'eno', 'hen', 'ome', 'non', 'eno', 'men', 'nom', 'eno', 'ome', 'non', 'men', 'eno', 'non'] Total unique substring count: 7 list: set(['nom', 'non', 'ome', 'men', 'phe', 'eno', 'hen'])

Anonymous

Nov 11, 2017

import java.util.HashMap; public class IsAnagram { public static void main(String[] args) { System.out.println(isAnagram("kkemo", "okkme")); } private static boolean isAnagram(String string, String string2) { String str =string.toLowerCase(); String str2 = string2.toLowerCase(); if(str.length() != str2.length()) { return false; } HashMap hasmap= new HashMap(); for (int i = 0; i < string.length(); i++) { hasmap.put(str.charAt(i),i+1); } for (int i = 0; i < hasmap.size(); i++) { if(hasmap.get(str2.charAt(i)) == null) { return false; } } return true; } }