Search This Blog

Saturday, June 29, 2013

CodingBat Java Warmup 1 solutions 1 to 15


Java Warmup-1 of codingbat.com solutions to problems 1 to 15. If you are new here please visit the previous post learn-coding-computer-programming-for-beginners.

1.       Problem Name :sleepIn
Solution:
Hint: The problem statement says we can sleep when it is not a weekday or if we are on vacation.

public boolean sleepIn(boolean weekday, boolean vacation) {
                if (!weekday || vacation) {
                  return true;
                }
               
                return false;
               
                // Solution notes: better to write "vacation" than "vacation == true"
                // though they mean exactly the same thing.
                // Likewise "!weekday" is better than "weekday == false".
                // This all can be shortened to: return (!weekday || vacation);
                // Here we just put the return-false last, or could use an if/else.
              }

2.       Problem Name : monkeyTrouble
Solution:
Hint: We are in trouble if they are both smiling or if neither of them is smiling. We have to return true if we are in trouble.
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);
              }

3.       Problem Name : diff21
Solution:
Hint: We need to sum for all, but if a and b are equal then we have to double the sum.
       public int sumDouble(int a, int b) {
                // Store the sum in a local variable
                int sum = a + b;
               
                // Double it if a and b are the same
                if (a == b) {
                  sum = sum * 2;
                }
               
                return sum;
              }

4.       Problem Name : sumDouble
Solution:
Hint:  We need to return (21-n) if n is less than or equal to 21 else we have to return ((n-21)*2).

public int diff21(int n) {
              //if n less than 21 return (21-n)
                if (n <= 21) {
                  return 21 - n;
                }
                else // else n is greater than 21 so return ((n-21)*2)
                {
                  return (n - 21) * 2;
                }
              }

5.       Problem Name : parrotTrouble
Solution:
Hint:  We are in trouble if the parrot is talking and the hour is before 7 or after 20.
public boolean parrotTrouble(boolean talking, int hour) {
               
              return (talking && (hour < 7 || hour > 20));
                // Need extra parenthesis around the || clause
                // since && binds more tightly than ||
                // && is like arithmetic *, || is like arithmetic +
              }

6.       Problem Name : makes10
Solution:
Hint: We need to return true if a is 10 or b is 10 or (a+b) is 10

public boolean makes10(int a, int b) {
                return (a == 10 || b == 10 || (a+b) == 10);
              }

7.       Problem Name : nearHundred 
Solution:
Hint: we need to return true if it is within 10 of 100 or 200.
public boolean nearHundred(int n) {
                return ((Math.abs(100 - n) <= 10) ||
                  (Math.abs(200 - n) <= 10));
              }

8.       Problem Name : posNeg 
Solution:
Hint:  if negative is true return true if a AND b are both negative. Else return true if a is positive and b negative OR a is negative and b is positive.
public boolean posNeg(int a, int b, boolean negative) {
                if (negative) {
                  return (a < 0 && b < 0);
                }
                else {
                  return ((a < 0 && b > 0) || (a > 0 && b < 0));
                }
              }


9.       Problem Name : notString 
Solution:
Hint:  return the string as such if it starts with not else return not concatenated to the start of the string.
public String notString(String str) {
                if (str.length() >= 3 && str.substring(0, 3).equals("not")) {
                  return str;
                }
               
                return "not " + str;
              }

10.   Problem Name : missingChar 
Solution:
Hint:  We need to remove character at n. Do a substring from 0 to n and  substring from n+1 to string length to omit the character.
public String missingChar(String str, int n) {
                String front = str.substring(0, n);
               
                // Start this substring at n+1 to omit the char.
                // Can also be shortened to just str.substring(n+1)
                // which goes through the end of the string.
                String back = str.substring(n+1, str.length());
               
                return front + back;
              }

11.   Problem Name : frontBack 
Solution:
Hint:  if length is less than or equal to one return the string as such. Else get the mid string and return last char + mid String + first char
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);
              }


12.   Problem Name : front3
Solution:
Hint: If len is greater than 3 we need to return first 3 character string appended thrice else return the string as such thrice
public String front3(String str) {
                String front;
               
                if (str.length() >= 3) {
                  front = str.substring(0, 3);
                }
                else {
                  front = str;
                }

                return front + front + front;
              }

13.   Problem Name : backAround 
Solution:
Hint: Get the last character as string, return last+string+last
public String backAround(String str) {
                // Get the last char
                String last = str.substring(str.length() - 1);
                return last + str + last;
              }

14.   Problem Name : or35
Solution:
Hint: If divisible by three number %3 will be zero, if divisible by 5 number %5 will be zero
public boolean or35(int n) {
                return (n % 3 == 0) || (n % 5 == 0);
              }

15.   Problem Name : front22 
Solution:
Hint: We need to take only first two characters if the string has less than 2 characters we take the string as such and return front+str+front.

       public String front22(String str) {
                // First figure the number of chars to take
                int take = 2;
                if (take > str.length()) {
                  take = str.length();
                }
               
                String front = str.substring(0, take);
                return front + str + front;
              }
Please visit my blogs for solutions for the other problems in Java Warmup 1.

No comments:

Post a Comment

Labels