Today when I was coding LeetCode 884. Uncommon Words from Two Sentences, I noticed that appending a char after a String is saving a little bit more time than appending a String after a String.
Here is my code: On line 2 and 3, I was using s1=s1+" ". After I changing it to s1=s1+' ', the run time was improved by 1s. I am wondering if appending char is more 'light-weighted'. If so, why? Thank you!
    public String[] uncommonFromSentences(String s1, String s2) {
        s1=s1+' ';
        s2=s2+' ';
       
        HashMap<String, Integer> map=new HashMap<>();
        ArrayList<String> al=new ArrayList<>();
        
        while (!s1.isEmpty()){
            int index= s1.indexOf(' ');
            
            String s=s1.substring(0, index);
            s1=s1.substring(index+1);
            
            map.put(s, map.getOrDefault(s,0)+1);
            
            
        }
        
        while (!s2.isEmpty()){
            int index=s2.indexOf(' ');
            
            String s=s2.substring(0, index);
            s2=s2.substring(index+1);
            
            map.put(s, map.getOrDefault(s,0)+1);
                       
        }
        
        for (Map.Entry<String, Integer> entry : map.entrySet()) {
            // System.out.println(entry.getValue() + " "+ entry.getKey());
            if(entry.getValue()==1){
               al.add(entry.getKey());
            }
        }
 
        return al.toArray(new String [al.size()]);
        
        
    }
}
Here is the link to the Leetcode Question: https://leetcode.com/problems/uncommon-words-from-two-sentences/
