The paperback edition of Mastering CodingBat (Java), Vol. 2: Intermediate A is now available for pre-order. It will be released on 29 April. A Kindle ebook will be released
Category Archives: CodingBat: Java
CodingBat (Java): Map-1 Updated
I just added the solutions to the three new problems in the Map-1 section of CodingBat and fixed the problem of the code samples on that page being incorrectly rendered.
Mastering CodingBat (Java), Vol. 1: Basics now available as ebook
Mastering CodingBat (Java), Vol. 1: Basics is now also available as an ebook for Amazon Kindle. Amazon also offers a free reader app for computers and mobile phones. Check out the product page of this book for further information, including a sample PDF.
CodingBat: Java. Map-2
For further help with Coding Bat (Java), please check out my books. I am also available for tutoring.
Here are my solutions to the Map-2 section on CodingBat.
word0:
public Map<String, Integer> word0(String[] strings) { Map<String, Integer> map = new HashMap<String, Integer>(); for (int i = 0; i < strings.length; i++) { map.put(strings[i], 0); } return map; }
wordLen:
public Map<String, Integer> wordLen(String[] strings) { Map<String, Integer> map = new HashMap<String, Integer>(); for (int i = 0; i < strings.length; i++) { String tmp = strings[i]; map.put(tmp, tmp.length()); } return map; }
pairs:
public Map<String, String> pairs(String[] strings) { Map<String, String> map = new HashMap<String, String>(); for (int i = 0; i < strings.length; i++) { String tmp = strings[i]; String first = String.valueOf(tmp.charAt(0)); String last = String.valueOf(tmp.charAt(tmp.length() - 1)); map.put(first, last); } return map; }
wordCount:
public Map<String, Integer> wordCount(String[] strings) { Map<String, Integer> map = new HashMap<String, Integer>(); for (int i = 0; i < strings.length; i++) { String tmp = strings[i]; if (map.containsKey(tmp)) { int count = map.get(tmp); map.put(tmp, count + 1); } else { map.put(tmp, 1); } } return map; }
firstChar:
public Map<String, String> firstChar(String[] strings) { Map<String, String> map = new HashMap<String, String>(); for (int i = 0; i < strings.length; i++) { String key = String.valueOf(strings[i].charAt(0)); if (map.containsKey(key)) { String val = map.get(key) + strings[i]; map.put(key, val); } else { map.put(key, strings[i]); } } return map; }
wordAppend:
public String wordAppend(String[] strings) { Map<String, Integer> map = new HashMap<String, Integer>(); String result = ""; for (int i = 0; i < strings.length; i++) { String key = strings[i]; if (map.containsKey(key)) { int val = map.get(key); val++; if (val % 2 == 0) { result += key; } map.put(key, val); } else { map.put(key, 1); } } return result; }
wordMultiple:
public Map<String, Boolean> wordMultiple(String[] strings) { Map<String, Integer> counts = new HashMap<String, Integer>(); Map<String, Boolean> result = new HashMap<String, Boolean>(); for (int i = 0; i < strings.length; i++) { String key = strings[i]; if (counts.containsKey(key)) { int val = counts.get(key); val++; counts.put(key, val); } else { counts.put(key, 1); } result.put(key, counts.get(key) >= 2); } return result; }
allSwap:
public String[] allSwap(String[] strings) { Map<String, Integer> map = new HashMap<String, Integer>(); for (int i = 0; i < strings.length; i++) { String key = String.valueOf(strings[i].charAt(0)); if (map.containsKey(key)) { // swap int pos = map.get(key); String tmp = strings[pos]; strings[pos] = strings[i]; strings[i] = tmp ; // delete map.remove(key); } else { map.put(key, i); } } return strings; }
firstSwap:
public String[] firstSwap(String[] strings) { Map<String, Integer> map = new HashMap<String, Integer>(); for (int i = 0; i < strings.length; i++) { String key = String.valueOf(strings[i].charAt(0)); if (map.containsKey(key)) { int val = map.get(key); if (val == -1) { continue; } // swap int pos = map.get(key); String tmp = strings[pos]; strings[pos] = strings[i]; strings[i] = tmp ; // set a flag map.put(key, -1); } else { map.put(key, i); } } return strings; }
For further help with Coding Bat (Java), please check out my books. I am also available for tutoring.
CodingBat: Java. Map-1
For further help with Coding Bat (Java), please check out my books. I am also available for tutoring.
Nick Parlante updated CodingBat with two new sets of Java exercises, which both focus on maps. My solutions for Map-1 are below.
mapBully:
public Map<String, String> mapBully(Map<String, String> map) { if (map.containsKey("a")) { String tmp = map.get("a"); map.put("a", ""); map.put("b", tmp); } return map; }
mapShare:
public Map<String, String> mapShare(Map<String, String> map) { if (map.containsKey("a")) { String tmp = map.get("a"); map.put("b", tmp); } map.remove("c"); return map; }
mapAB:
public Map<String, String> mapAB(Map<String, String> map) { if (map.containsKey("a") && map.containsKey("b")) { String tmp = map.get("a") + map.get("b"); map.put("ab", tmp); } return map; }
topping1:
public Map<String, String> topping1(Map<String, String> map) { if (map.containsKey("ice cream")) { map.put("ice cream", "cherry"); } map.put("bread", "butter"); return map; }
topping2:
public Map<String, String> topping2(Map<String, String> map) { if (map.containsKey("ice cream")) { map.put("yogurt", map.get("ice cream")); } if (map.containsKey("spinach")) { map.put("spinach", "nuts"); } return map; }
topping3:
public Map<String, String> topping3(Map<String, String> map) { if (map.containsKey("potato")) { map.put("fries", map.get("potato")); } if (map.containsKey("salad")) { map.put("spinach", map.get("salad")); } return map; }
mapAB2:
public Map<String, String> mapAB2(Map<String, String> map) { if (map.containsKey("a") && map.containsKey("b")) { if (map.get("a").equals(map.get("b"))) { map.remove("a"); map.remove("b"); } } return map; }
mapAB3:
public Map<String, String> mapAB3(Map<String, String> map) { if (map.containsKey("a") && !map.containsKey("b")) { map.put("b", map.get("a")); } else if (!map.containsKey("a") && map.containsKey("b")) { map.put("a", map.get("b")); } return map; }
mapAB4:
public Map<String, String> mapAB4(Map<String, String> map) { if (map.containsKey("a") && map.containsKey("b")) { String a = map.get("a"); String b = map.get("b"); if (a.length() > b.length()) map.put("c", a); else if (b.length() > a.length()) map.put("c", b); else { map.put("a", ""); map.put("b", ""); } } return map; }
For further help with Coding Bat (Java), please check out my books. I am also available for tutoring.