Interview Question

Anonymous Interview

Given two different strings, find the common characters

  between the two. For example if string A is "hello" and string B is "elbow" the common characters would be ['e', 'l', 'o']. Give a method that returns unique or duplicate entries.
Tags:
algorithm
Answer

Interview Answer

2 Answers

1

Using python sets, create the two sets of characters, then return the intersection. This will return the set of characters that are in both strings.

from sets import Set

def duplicateChars(s1, s2):
    s1set = set()
    s2set = set()
    for c in s1:
        s1set.add(c)
    for c in s2:
        s2set.add(c)

    return s1set.intersection(s2set)

print duplicateChars("string", "ring")

Sam on Jan 10, 2014
1

Solution in Java:

public class StringIntersection {
    String str1 = "hello";
    String str2 = "elbow";

    public Set findIntersection() {
        String[] arr1 = str1.split("");
        String[] arr2 = str2.split("");

        List<String> list = Arrays.asList(arr1);

        Set<String> set = new LinkedHashSet<String>(Arrays.asList(arr1));
        set.retainAll(Arrays.asList(arr2));

        set.remove("");

        return set; // returns [e, l, o]
    }
}

Chase on Jan 11, 2014

Add Answers or Comments

To comment on this question, Sign In with Facebook or Sign Up