Friday, June 3, 2016

Java Challenge - monkeyTrouble

We have two monkeys, a and b, and the parameters aSmile and bSmile indicate if each is smiling. We are in trouble if they are both smiling or if neither of them is smiling. Return true if we are in trouble.

monkeyTrouble(true, true) → true
monkeyTrouble(false, false) → true
monkeyTrouble(true, false) → false

My solution :
1
2
3
4
5
6
public static boolean monkeyTrouble(boolean aSmile, boolean bSmile)
{
  boolean result = !(aSmile ^ bSmile);
  return result;
}
 

Result :
Codingbat solution :
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
public boolean monkeyTrouble(boolean aSmile, boolean bSmile) {
  if (aSmile && bSmile) {
    return true;
  }
  if (!aSmile && !bSmile) {
    return true;
  }
  return false;
  // The above can be shortened to:
  //   return ((aSmile && bSmile) || (!aSmile && !bSmile));
  // Or this very short version (think about how this is the same as the above)
  //   return (aSmile == bSmile);
}

Java Challenge - frontBack

Given a string, return a new string where the first and last chars have been exchanged.
frontBack("code") → "eodc"
frontBack("a") → "a"
frontBack("ab") → "ba"

My Solution :
1
2
3
4
5
6
7
8
public String frontBack(String str) {
  if (str.length() == 0 || str.length() == 1) return str;
  char temp1 = str.charAt(0);
  char temp2 = str.charAt(str.length()-1);
  String temp3 = str.substring(1, str.length()-1);
  String result = temp2+temp3+temp1;
  return result;
}

CodingBat's Solution :
1
2
3
4
5
6
7
8
public String frontBack(String str) {
  if (str.length() <= 1) return str;
  
  String mid = str.substring(1, str.length()-1);
  
  // last + mid + first
  return str.charAt(str.length()-1) + mid + str.charAt(0);
}

Weeew... My solution looks so bad... :v :v :v
But it doesn't matter, I'm just getting started... B-)