dushyant.sabharwal
BAN USERimport java.util.ArrayList;
import java.util.HashMap;
import java.util.Scanner;
/**
* Created by dushyant.sabharwal on 11/20/16.
*/
public class GeneratePalindromicPermutations {
private static HashMap<String, Integer> unique_permutations = new HashMap<>();
private static String unique_chars = "";
public static void main(String []args) {
System.out.println("Enter the string for checking");
Scanner sc = new Scanner(System.in);
String input = sc.next();
sc.close();
if (isPalindromePossible(input)) {
HashMap<Character, Integer> char_map = new HashMap<>();
for (int i=0; i < input.length(); i++) {
char c = input.charAt(i);
if (!char_map.containsKey(c)) {
char_map.put(c, 1);
} else {
unique_chars += input.substring(i, i + 1);
char_map.remove(c);
}
}
generatePermutations(0, new ArrayList<StringBuilder>());
for (Character c : char_map.keySet()) {
unique_chars = c.toString();
}
if (char_map.size() > 0) {
for (String key : unique_permutations.keySet()) {
System.out.println(key + unique_chars + new StringBuilder(key).reverse().toString());
}
} else {
for (String key : unique_permutations.keySet()) {
System.out.println(key + new StringBuilder(key).reverse().toString());
}
}
} else {
System.out.println("No palindromic permutations possible");
}
}
private static void generatePermutations(int index, ArrayList<StringBuilder> results) {
if (index == 0) {
if (unique_chars.length() > 1) {
results.add(new StringBuilder(unique_chars.substring(0, 1)));
generatePermutations(index + 1, results);
} else {
unique_permutations.put(unique_chars.substring(0, 1), 1);
return;
}
} else {
ArrayList<StringBuilder> new_results = new ArrayList<>();
for (StringBuilder result : results) {
for (int i=0; i <= result.length(); i++) {
StringBuilder temp_result = new StringBuilder(result);
new_results.add(temp_result.insert(i, unique_chars.charAt(index)));
}
}
if (index == unique_chars.length() - 1) {
for (StringBuilder result : new_results) {
String str_result = result.toString();
if (!unique_permutations.containsKey(str_result)) {
unique_permutations.put(str_result, 1);
}
}
return;
}
generatePermutations(index + 1, new_results);
}
}
private static boolean isPalindromePossible(String input) {
int [] map = new int[122];
boolean even = (0 == input.length() % 2);
for (int i=0; i < input.length(); i++) {
map[input.charAt(i)]++;
}
for (int i=0; i < input.length(); i++) {
char c = input.charAt(i);
if (map[c] > 0) {
if (even && map[c] % 2 != 0) {
return false;
} else if (!even && map[c] % 2 != 0) {
even = true;
}
}
}
return true;
}
}
- dushyant.sabharwal November 20, 2016import java.util.Scanner;
/**
* Created by dushyant.sabharwal on 11/20/16.
*/
public class PalindromicPermutation {
public static void main(String []args) {
char [] char_map = new char[122];
System.out.println("Enter the string for checking");
Scanner sc = new Scanner(System.in);
String input = sc.next();
sc.close();
boolean even = (0 == input.length() % 2);
for (int i=0; i < input.length(); i++) {
char c = input.charAt(i);
char_map[c]++;
}
int i;
for(i=0; i < char_map.length; i++) {
if (char_map[i] > 0) {
if (even && char_map[i] % 2 != 0) {
System.out.println("No palindrome");
break;
} else if(!even && char_map[i] % 2 != 0) {
even = true;
}
}
}
if (i == char_map.length) {
System.out.println("There is a palindrome");
}
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/**
* Created by dushyant.sabharwal on 11/20/16.
*/
public class OrderingString {
public static void main(String []args) throws IOException {
System.out.println("Please enter the main string");
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
String main = bufferedReader.readLine();
System.out.println("Please enter the ordering string");
String ordering = bufferedReader.readLine();
bufferedReader.close();
int [] order = new int[ordering.length()];
for (int i=0; i < ordering.length(); i++) {
order[i] = main.lastIndexOf(ordering.charAt(i));
}
int i;
if (order.length > 1) {
for (i = 0; i < order.length - 1; i++) {
if (order[i] == -1 || order[i] > order[i + 1]) {
break;
}
}
if (i == order.length - 1) {
System.out.println("TRUE");
} else {
System.out.println("FALSE");
}
} else {
System.out.println(-1 != main.lastIndexOf(ordering.charAt(0)));
}
}
}
- dushyant.sabharwal November 20, 2016import java.util.*;
public class CoinSum
{
private static int [] coin_values;
private static int [] coin_quantity;
private static int coin_type;
private static int count = 0;
private static HashMap<Integer, ArrayList<Integer>> result_stacks = new HashMap<>();
public static void main(String []args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter the no. of type of coins");
coin_type = sc.nextInt();
coin_values = new int[coin_type];
coin_quantity = new int[coin_type];
System.out.println("Enter the value of coins");
int i = coin_type;
while(i > 0) {
coin_values[coin_type-i] = sc.nextInt();
i--;
}
System.out.println("Enter the quantity of coins");
i = coin_type;
while(i > 0) {
coin_quantity[coin_type-i] = sc.nextInt();
i--;
}
sc.close();
calculateSum(0);
ArrayList<Integer> results = result_stacks.get(0);
for (int result : results) {
System.out.println(result);
}
}
private static void calculateSum(int type) {
if (type < coin_type) {
ArrayList<Integer> new_results = new ArrayList<>();
for (int i=1; i <= coin_quantity[type]; i++) {
//System.out.println(++count);
int sum = i * coin_values[type];
calculateSum(type + 1);
ArrayList<Integer> next_level_results = result_stacks.get(type + 1);
if (next_level_results != null) {
for (int result : next_level_results) {
new_results.add(sum + result);
}
} else {
new_results.add(sum);
}
}
result_stacks.put(type, new_results);
}
}
}
RepKoriScott, abc at Omli
Licensed mechanical maintenance engineer with extensive practical experience working with diverse systems and equipment. Solid professional knowledge base built upon ...
Repsuzikaily, Digital marketing freshers at ADP
Hi , I am Suzi , working as a dancer in the Rudo club . I have been working here since 2013 and ...
- dushyant.sabharwal September 04, 2017