diff --git a/src/main/java/com/fishercoder/solutions/_150.java b/src/main/java/com/fishercoder/solutions/_150.java index c8e7abfbd9..c03cc3bd49 100644 --- a/src/main/java/com/fishercoder/solutions/_150.java +++ b/src/main/java/com/fishercoder/solutions/_150.java @@ -62,4 +62,30 @@ public int evalRPN(String[] tokens) { return Integer.parseInt(stack.pop()); } + //using one stack only. + public int evalRPN1(String[] tokens) { + Stack stack = new Stack(); + for (int i = 0; i < tokens.length; i++) { + if (tokens[i].equals("+")) { + stack.push(stack.pop() + stack.pop()); + } + else if (tokens[i].equals("-")) { + stack.push(-stack.pop() + stack.pop()); + } + else if (tokens[i].equals("*") ) { + stack.push(stack.pop() * stack.pop()); + + } + else if (tokens[i].equals("/")) { + int a = stack.pop(); + int b = stack.pop(); + stack.push(b / a); + + } else { + stack.push(Integer.parseInt (tokens[i])); + } + } + return stack.pop(); + } + } diff --git a/src/main/java/com/fishercoder/solutions/_344.java b/src/main/java/com/fishercoder/solutions/_344.java index 91a6549653..102007bdc8 100644 --- a/src/main/java/com/fishercoder/solutions/_344.java +++ b/src/main/java/com/fishercoder/solutions/_344.java @@ -12,20 +12,15 @@ public String reverseString_cheating(String s) { return new StringBuilder(s).reverse().toString(); } - public String reverseString(String s) { + public String reverseString(String s){ int i = 0, j = s.length()-1; char[] chars = s.toCharArray(); while(i < j){ char temp = chars[i]; - chars[i] = chars[j]; - chars[j] = temp; - i++; - j--; - } - StringBuilder sb = new StringBuilder(); - for(char c : chars){ - sb.append(c); + chars[i++] = chars[j]; + chars[j--] = temp; + } - return sb.toString(); + return new String(chars); } }