From 20add31a27c4eb1c8304e2457daf008f4e27a57c Mon Sep 17 00:00:00 2001 From: Jason Li <57246540+JasonLi1909@users.noreply.github.com> Date: Sun, 30 Aug 2020 20:46:30 -0700 Subject: [PATCH] A more succinct answer --- java/string-2/mixString.java | 27 +++++++-------------------- 1 file changed, 7 insertions(+), 20 deletions(-) diff --git a/java/string-2/mixString.java b/java/string-2/mixString.java index fff78ed..9dfc97d 100644 --- a/java/string-2/mixString.java +++ b/java/string-2/mixString.java @@ -3,24 +3,11 @@ * and so on. Any leftover chars go at the end of the result. */ public String mixString(String a, String b) { - char[] arr; - String end; - int count = 0; - - if(a.length() < b.length()) { - arr = new char[2 * a.length()]; - end = b.substring(a.length()); - } else { - arr = new char[2 * b.length()]; - end = a.substring(b.length()); - } - - for(int i = 0; i < arr.length / 2; i++) { - arr[count] = a.charAt(i); - count++; - arr[count] = b.charAt(i); - count++; - } - - return new String(arr) + end; + StringBuffer mix = new StringBuffer(); + int len = (a.length() > b.length())? a.length(): b.length(); + for(int i = 0; i < len; i++){ + if(i < a.length()) mix.append(a.charAt(i)); + if(i < b.length()) mix.append(b.charAt(i)); + } + return mix.toString(); }