mail.smritiraj
BAN USERpublic static Stack<Integer> stackSort(Stack<Integer> s1) {
Stack<Integer> s2 = new Stack<Integer>();
while (s1.size() > 0) {
int next = s1.pop();
while (s2.size() > 0) {
int sorted = s2.pop();
if (sorted < next)
s1.push(sorted);
}
s2.push(next);
}
return s1;
}
public static void main(String[] args) {
int[] A = { 2, 3, 4,1 };
int sumNum = 0;
Map<Integer, Integer> pairs = new HashMap<Integer, Integer>();
for (int i : A) {
pairs.put(i, sumNum-i);
}
int count = 0;
for(int key:pairs.keySet()){
if(pairs.containsKey(sumNum-key)){
count++;
}
}
System.out.println(count/2);
}
public class RotatedSortedArray {
static int findMin(int arr[], int low, int high) {
if (high == low) return low;
if (high < low) return low;
int mid = low + (high - low) / 2;
if (arr[mid + 1] < arr[mid] && high > mid) {
return mid + 1;
}
if (arr[mid - 1] > arr[mid] && mid > low) {
return mid;
}
if (arr[high] > arr[mid]) {
return findMin(arr, low, mid);
} else {
return findMin(arr, mid, high);
}
}
static int findPosRotatedArray(int arr[], int low, int high, int num) {
int pos = findMin(arr, low, high);
if (arr[pos] < num && num > arr[high]) {
return binarySearch(arr, num, pos - 1, low);
} else {
return binarySearch(arr, num, high, pos);
}
}
static int binarySearch(int arr[], int num, int high, int low) {
if (high < low) {
return -1;
}
int mid = low + (high - low) / 2;
if (num == arr[mid]) {
return mid;
} else if (num > arr[mid]) {
return binarySearch(arr, num, high, mid + 1);
} else {
return binarySearch(arr, num, mid - 1, low);
}
}
public static void main(String[] args) {
int arr1[] = {5, 6, -2, -1, 1, 2, 3, 4};
System.out.println(findMin(arr1, 0, arr1.length - 1));
System.out.println(findPosRotatedArray(arr1, 0, arr1.length - 1, 2));
}
}
public class ParanthesisAppend {
private static final Map<Character, Character> brackets = new HashMap<Character, Character>();
private static final Map<Character, Character> oppositebrackets = new HashMap<Character, Character>();
static {
brackets.put('[', ']');
brackets.put('{', '}');
brackets.put('(', ')');
oppositebrackets.put(']', '[');
oppositebrackets.put('}', '{');
oppositebrackets.put(')', '(');
}
public static String isBalanced(String str) {
if (str.length() == 0) {
throw new IllegalArgumentException("String length should be greater than 0");
}
final Stack<Character> stack = new Stack<Character>();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < str.length(); i++) {
if (brackets.containsKey(str.charAt(i))) {
stack.push(str.charAt(i));
sb.append(str.charAt(i));
} else if (stack.empty() || (str.charAt(i) != brackets.get(stack.pop()))) {
if (i == 0) {
if (sb.toString().indexOf(oppositebrackets.get(str.charAt(i))) == -1)
sb.insert(0, oppositebrackets.get(str.charAt(i)));
sb.append(str.charAt(i));
} else {
if (sb.toString().indexOf(oppositebrackets.get(str.charAt(i))) == -1)
sb.append(oppositebrackets.get(str.charAt(i)));
sb.append(str.charAt(i));
}
} else {
sb.append(str.charAt(i));
}
}
for (char c : stack) {
sb.append(brackets.get(c));
}
return sb.toString();
}
public static void main(String[] args) {
System.out.println(isBalanced("{}([])"));
System.out.println(isBalanced("([}])"));
System.out.println(isBalanced("([])"));
System.out.println(isBalanced("()[]{}[][]"));
System.out.println(isBalanced("[}])"));
}
}
- mail.smritiraj May 26, 2017