Implement an algorithm to determine if a string has all unique characters. What if you can not use additional data structures?
Implement an algorithm to determine if a string has all unique characters. What if
Share
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
If you can use a little auxiliary memory, then a small array of bits (indexed by the numerical code of the character) is all you need (if your characters are 4-byte Unicode ones you’ll probably want a hashmap instead;-). Start with all bits at 0: scan the string from the start — each time, you’ve found a duplicate if the bit corresponding to the current character is already 1 — otherwise, no duplicates yet, set that bit to 1. This is O(N).
If you can’t allocate any extra memory, but can alter the string, sorting the string then doing a pass to check for adjacent duplicates is the best you can do, O(N log N).
If you can’t allocate extra memory and cannot alter the string, you need an O(N squared) check where each character is checked vs all the following ones.