diff --git a/src/main/java/com/zipcodewilmington/assessment1/part1/BasicArrayUtils.java b/src/main/java/com/zipcodewilmington/assessment1/part1/BasicArrayUtils.java index ef714b5..47aa71f 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part1/BasicArrayUtils.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part1/BasicArrayUtils.java @@ -9,7 +9,9 @@ public class BasicArrayUtils { * @return the first element in the array */ public static String getFirstElement(String[] stringArray) { - return null; + return stringArray[0]; + + //return null; } /** @@ -17,7 +19,8 @@ public static String getFirstElement(String[] stringArray) { * @return the second element in the array */ public static String getSecondElement(String[] stringArray) { - return null; + return stringArray[1]; + //return null; } /** @@ -25,7 +28,9 @@ public static String getSecondElement(String[] stringArray) { * @return the last element in the array */ public static String getLastElement(String[] stringArray) { - return null; + return stringArray[stringArray.length-1]; + + //return null; } /** @@ -33,6 +38,7 @@ public static String getLastElement(String[] stringArray) { * @return the second to last element in the array */ public static String getSecondToLastElement(String[] stringArray) { - return null; + return stringArray[stringArray.length-2]; + //return null; } } diff --git a/src/main/java/com/zipcodewilmington/assessment1/part1/BasicStringUtils.java b/src/main/java/com/zipcodewilmington/assessment1/part1/BasicStringUtils.java index ca13f2d..2dee3b9 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part1/BasicStringUtils.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part1/BasicStringUtils.java @@ -9,7 +9,11 @@ public class BasicStringUtils { * @return string with identical content, and the first character capitalized */ public static String camelCase(String str) { - return null; + //char firstChar = str.toUpperCase(str.charAt(0); + //String outcome = new StringBuilder(str).setCharAt(0, ); + String outcome = Character.toUpperCase(str.charAt(0)) + str.substring(1); + return outcome; + //return null } /** @@ -17,15 +21,19 @@ public static String camelCase(String str) { * @return string with identical contents, in the reverse order */ public static String reverse(String str) { - return null; + String outcome = new StringBuilder(str).reverse().toString(); + return outcome; + //return null; } - /** * @param str string input from client * @return string with identical contents, in reverse order, with first character capitalized */ public static String reverseThenCamelCase(String str) { - return null; + String step1reverse = reverse(str); + String step2camel = camelCase(step1reverse); + return step2camel; + //return null; } @@ -34,7 +42,13 @@ public static String reverseThenCamelCase(String str) { * @return string with identical contents excluding first and last character */ public static String removeFirstAndLastCharacter(String str) { - return null; + //str = str.substring(1,str.length()-1); + StringBuilder sb = new StringBuilder(str); + sb.deleteCharAt(str.length()-1); + sb.deleteCharAt(0); + return sb.toString(); + // String outcome = str.replace(str.charAt(0),''); + // return null; } /** @@ -42,6 +56,17 @@ public static String removeFirstAndLastCharacter(String str) { * @return string with identical characters, each with opposite casing */ public static String invertCasing(String str) { - return null; + char[] chars = str.toCharArray(); + //loop through the char to reverse each + for (int i = 0; i < chars.length; i++) { + char c = chars[i]; + if (Character.isUpperCase(c)) { + chars[i] = Character.toLowerCase(c); + } else if (Character.isLowerCase(c)) { + chars[i] = Character.toUpperCase(c); + } + } + return new String(chars); + //return null; } } diff --git a/src/main/java/com/zipcodewilmington/assessment1/part1/IntegerArrayUtils.java b/src/main/java/com/zipcodewilmington/assessment1/part1/IntegerArrayUtils.java index 68d82ec..1f4593c 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part1/IntegerArrayUtils.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part1/IntegerArrayUtils.java @@ -1,5 +1,8 @@ package com.zipcodewilmington.assessment1.part1; +import java.util.Arrays; +import java.util.stream.IntStream; + /** * Created by leon on 2/16/18. */ @@ -9,7 +12,15 @@ public class IntegerArrayUtils { * @return the sum of `intArray` */ public static Integer getSum(Integer[] intArray) { - return null; + int sum = 0; + for (int num : intArray){ + sum += num; + } + return sum; + //Integer sum = intArray.stream(); + //int sum = IntStream.of(intArray).sum(); + //return Arrays.stream(intArray).sum(); + //return null; } /** @@ -17,7 +28,12 @@ public static Integer getSum(Integer[] intArray) { * @return the product of `intArray` */ public static Integer getProduct(Integer[] intArray) { - return null; + int product =1; + for (int i : intArray){ + product *=i; + } + return product; + //return null; } /** @@ -25,6 +41,10 @@ public static Integer getProduct(Integer[] intArray) { * @return the sum of `intArray` divided by number of elements in `intArray` */ public static Double getAverage(Integer[] intArray) { - return null; + double averg = getSum(intArray); + averg /= (intArray.length); + return averg; + + //return null; } } diff --git a/src/main/java/com/zipcodewilmington/assessment1/part1/IntegerUtils.java b/src/main/java/com/zipcodewilmington/assessment1/part1/IntegerUtils.java index eccbb6c..3af99ce 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part1/IntegerUtils.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part1/IntegerUtils.java @@ -11,7 +11,13 @@ public class IntegerUtils { * @return the sum of all integers between 0 and not including `n` */ public static Integer getSumOfN(Integer n) { - return null; + int N = n; + int sum = 0; + for (int i =1; i <=N;i++){ + sum +=i; + } + return sum; + //return null; } /** @@ -19,7 +25,12 @@ public static Integer getSumOfN(Integer n) { * @return the product of all integers between 0 and not including `n` */ public static Integer getProductOfN(Integer n) { - return null; + long outcome = 1; + for (int factor = 2; factor <= n; factor++) { + outcome *= factor; + } + return Math.toIntExact(outcome); + //return null; } /** @@ -27,6 +38,16 @@ public static Integer getProductOfN(Integer n) { * @return integer with identical digits in the reverse order */ public static Integer reverseDigits(Integer val) { - return null; + int reverse = 0; + while (val !=0){ + reverse = reverse * 10 + val % 10; + val/=10; + } + return reverse; +// int digits = val; +// StringBuilder newDigits = new StringBuilder(String.valueOf(digits)); +// digits = newDigits.reverse(); + + //return null; } } diff --git a/src/main/java/com/zipcodewilmington/assessment1/part1/RockPaperSissorsEvaluator.java b/src/main/java/com/zipcodewilmington/assessment1/part1/RockPaperSissorsEvaluator.java index 9495445..894a725 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part1/RockPaperSissorsEvaluator.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part1/RockPaperSissorsEvaluator.java @@ -13,7 +13,15 @@ public class RockPaperSissorsEvaluator { * @return the respective winning move */ public String getWinningMove(String handSign) { - return null; + if (handSign == "rock") { + return "paper"; + } + else if (handSign == "scissors"){ + return "rock"; + } + else return "scissors"; + //return null; + } /** @@ -21,7 +29,15 @@ public String getWinningMove(String handSign) { * @return the respective losing move */ public String getLosingMove(String handSign) { - return null; + if (handSign == "rock") { + return "scissor"; + } + else if (handSign == "scissor"){ + return "paper"; + } + else return "rock"; + + //return null; } /** @@ -30,6 +46,17 @@ public String getLosingMove(String handSign) { * @return a string representative of the winning hand sign between the two players */ public String getWinner(String handSignOfPlayer1, String handSignOfPlayer2) { - return null; + if (handSignOfPlayer1 == "rock" && handSignOfPlayer2 == "scissor") { + return "rock"; + } + else if (handSignOfPlayer1 == "scissor" && handSignOfPlayer2 == "paper"){ + return "scissor"; + } + else if (handSignOfPlayer1 == "paper" && handSignOfPlayer2 == "rock"){ + return "paper"; + } + else return handSignOfPlayer2; + + //return null; } } diff --git a/src/main/java/com/zipcodewilmington/assessment1/part2/ArrayUtils.java b/src/main/java/com/zipcodewilmington/assessment1/part2/ArrayUtils.java index bb9995a..2a513f3 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part2/ArrayUtils.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part2/ArrayUtils.java @@ -1,5 +1,9 @@ package com.zipcodewilmington.assessment1.part2; +import java.util.Arrays; +import java.util.stream.Stream; +import java.util.HashMap; +import java.util.Map; /** * Created by leon on 2/16/18. */ @@ -11,7 +15,16 @@ public class ArrayUtils { * Given an array of objects, named `objectArray`, and an object `objectToCount`, return the number of times the `objectToCount` appears in the `objectArray` */ public static Integer getNumberOfOccurrences(Object[] objectArray, Object objectToCount) { - return null; + // loop through + int counter = 0; + for (int i = 0; i countMap = new HashMap<>(); + int mostFrequent = (int) objectArray[0]; + int maxCount = 0; + for (int i = 0; i < objectArray.length; i++) { + int num = (int) objectArray[i]; + int count = countMap.getOrDefault(num, 0) + 1; + countMap.put(num, count); + if (count > maxCount) { + mostFrequent = num; + maxCount = count; + } + } + return mostFrequent; + //return null; + } /** * @param objectArray an array of any type of Object * @return the least frequently occurring object in the array * given an array of objects, named `objectArray` return the least frequently occuring object in the array */ - public static Object getLeastCommon(Object[] objectArray) { - return null; + public static Object getLeastCommon(Integer[] objectArray) { + int n = objectArray.length; + boolean visited[] = new boolean[n]; + int maxFreq = 0, minFreq = n; + int maxElement = 0, minElement = 0; + for (int i = 0; i < n; i++) { + if (visited[i] == true) + continue; + int count = 1; + for (int j = i + 1; j < n; j++) { + if (objectArray[i] == objectArray[j]) { + visited[j] = true; + count++; + } + } + if (count > maxFreq) { + maxElement = objectArray[i]; + maxFreq = count; + } + if (count < minFreq) { + minElement = objectArray[i]; + minFreq = count; + } + } + return minElement; } /** @@ -50,6 +121,15 @@ public static Object getLeastCommon(Object[] objectArray) { * given two arrays `objectArray` and `objectArrayToAdd`, return an array containing all elements in `objectArray` and `objectArrayToAdd` */ public static Object[] mergeArrays(Object[] objectArray, Object[] objectArrayToAdd) { - return null; + int x = objectArray.length; + int y = objectArrayToAdd.length; + Integer[] mergeArray = new Integer[x + y]; + + System.arraycopy(objectArray, 0, mergeArray, 0, x); + System.arraycopy(objectArrayToAdd, 0, mergeArray, x, y); + + System.out.println(Arrays.toString(mergeArray)); + return mergeArray; + //return null; } } diff --git a/src/main/java/com/zipcodewilmington/assessment1/part2/MultiplesDeleter.java b/src/main/java/com/zipcodewilmington/assessment1/part2/MultiplesDeleter.java index a348b0d..627a5cd 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part2/MultiplesDeleter.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part2/MultiplesDeleter.java @@ -1,5 +1,7 @@ package com.zipcodewilmington.assessment1.part2; +import java.util.ArrayList; + /** * Created by leon on 2/16/18. */ @@ -10,7 +12,20 @@ public class MultiplesDeleter { * given an array of integers, named `ints` return an identical array with evens removed */ public Integer[] deleteEvens(Integer[] ints) { - return null; + int count =0; + for (Integer num : ints){ + if (num % 2 !=0){ + count++; + } + } + Integer[] outcome = new Integer[count]; + int index = 0; + for (Integer num : ints){ + if (num %2!=0){ + outcome[index++] = num; + } + } + return outcome; } /** @@ -19,7 +34,21 @@ public Integer[] deleteEvens(Integer[] ints) { * given an array of integers, named `ints` return an identical array with odds removed */ public Integer[] deleteOdds(Integer[] ints) { - return null; + int count = 0; + for (Integer num : ints) { + if (num %2 == 0) { + count++; + } + } + Integer[] outcome = new Integer[count]; + int index = 0; + for (Integer num : ints) { + if (num % 2 ==0) { + outcome[index++] = num; + } + } + return outcome; + //return null; } /** @@ -28,7 +57,24 @@ public Integer[] deleteOdds(Integer[] ints) { * given an array of integers, named `ints` return an identical array with numbers indivisible by 3 removed */ public Integer[] deleteMultiplesOf3(Integer[] ints) { - return null; + int count = 0; + //for each... + for (Integer num : ints){ + //divisible by 3 + if (num %3!=0){ + count++; + } + } + Integer[] outcome = new Integer[count]; + int index =0; + // for each in array ints + for (Integer num : ints){ + if (num %3 !=0){ + outcome[index++]=num; + } + } + return outcome; + //return null; } /** @@ -38,6 +84,23 @@ public Integer[] deleteMultiplesOf3(Integer[] ints) { * given an array of integers, named `ints` return an identical array with numbers indivisible by `multiple` removed */ public Integer[] deleteMultiplesOfN(Integer[] ints, int multiple) { - return null; + int count = 0; + //for each... + for (Integer num : ints){ + //divisible by 3 + if (num %multiple!=0){ + count++; + } + } + Integer[] outcome = new Integer[count]; + int index =0; + // for each in array ints + for (Integer num : ints){ + if (num %multiple !=0){ + outcome[index++]=num; + } + } + return outcome; + //return null; } } diff --git a/src/main/java/com/zipcodewilmington/assessment1/part2/StringUtils.java b/src/main/java/com/zipcodewilmington/assessment1/part2/StringUtils.java index fc403e5..dcb2d6a 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part2/StringUtils.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part2/StringUtils.java @@ -11,7 +11,13 @@ public class StringUtils { * given a string containing words delimited by spaces, representative of a sentence, return an array of strings, each element representative of a respective word in the sentence */ public static String[] getWords(String sentence) { - return null; +// char[] wordArray = sentence.toCharArray(); + String[] words = sentence.split("\\W+"); +// for (int i = 0; i < words.length; i++){ +// words[i] = words[i]. +// } + return words; + //return null; } @@ -21,7 +27,10 @@ public static String[] getWords(String sentence) { * given a string containing words delimited by spaces, representative of a sentence, return the first word of the sentence */ public static String getFirstWord(String sentence) { - return null; + String[] outcome = sentence.split(" ",2); + String firstWord = outcome[0]; + return firstWord; + //return null; } /** @@ -30,7 +39,11 @@ public static String getFirstWord(String sentence) { * given a string containing words delimited by spaces, representative of a sentence, return the first word with identical contents in reverse order */ public static String reverseFirstWord(String sentence) { - return null; + String[] newString = sentence.split(" ",2); + String firstword = newString[0]; + String outcome = new StringBuilder(firstword).reverse().toString(); + return outcome; + //return null; } /** @@ -39,7 +52,12 @@ public static String reverseFirstWord(String sentence) { * given a string containing words delimited by spaces, representative of a sentence, return the first word with identical contents in reverse order with the first character capitalized */ public static String reverseFirstWordThenCamelCase(String sentence) { - return null; + String[] newString = sentence.split(" ",2); + String firstword = newString[0]; + String outcome = new StringBuilder(firstword).reverse().toString(); + String finalOutcome = String.valueOf(Character.toUpperCase(outcome.charAt(0)))+ outcome.substring(1); + return finalOutcome; + //return null; } @@ -50,7 +68,16 @@ public static String reverseFirstWordThenCamelCase(String sentence) { * given a string and index, return an identical string excluding the character at the specified index */ public static String removeCharacterAtIndex(String str, int index) { - return null; + StringBuilder outcome = new StringBuilder(str); + outcome.deleteCharAt(index); + +// for (int i = 0; i