binitbhas
BAN USERpackage practice.careercup;
import java.util.Stack;
public class Remove3ConsecuitiveDuplicates {
public static void main(String[] args) {
String input = "aabbbaccddddc";
Stack<CharacterCount> characterStack = new Stack<>();
for (Character eachChar : input.toCharArray()) {
if (!characterStack.isEmpty() &&
eachChar.equals(characterStack.peek().getCharacter()) ) {
CharacterCount characterCount = characterStack.peek();
if (characterCount.getCount() == 2 ){
characterStack.pop();
characterStack.pop();
} else {
characterStack.push(new CharacterCount(eachChar, characterCount.getCount()+1));
}
} else {
characterStack.push(new CharacterCount(eachChar, 1));
}
}
characterStack.forEach(characterCount -> System.out.print(characterCount.getCharacter()));
}
public static class CharacterCount {
private Character character;
private int count;
public CharacterCount(Character character, int count) {
this.character = character;
this.count = count;
}
public Character getCharacter() {
return character;
}
public int getCount() {
return count;
}
}
}
package practice.careercup;
import java.util.*;
import static java.util.stream.Collectors.joining;
public class LongestSubstringWithKDistinct {
public static void main(String[] args) {
String input = "aaaabbbbb";
int k = 2;
Set<Character> characterSet = new HashSet<>();
List<Character> characterList = new ArrayList<>();
for (Character character : input.toCharArray()) {
if (!characterSet.contains(character) && characterSet.size() == k){
System.out.println(characterList.stream().map(String::valueOf).collect(joining("")));
characterSet = new HashSet<>();
characterList = new ArrayList<>();
}
characterSet.add(character);
characterList.add(character);
}
if (characterSet.size() == k) {
System.out.println(characterList.stream().map(String::valueOf).collect(joining("")));
}
}
}
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.*;
import static java.lang.String.format;
public class ThreadPrinting {
public static void main(String[] args) throws Exception {
int[] inputs = {2,6,3,8};
Callable<Integer> firstAddition = additionThread(inputs[0], inputs[1], 'a', 'b');
Callable<Integer> secondAddition = additionThread(inputs[2], inputs[3], 'c', 'd');
ExecutorService executorService = Executors.newFixedThreadPool(2);
List<Future<Integer>> futureList = executorService.invokeAll(Arrays.asList(firstAddition, secondAddition));
int result = futureList.parallelStream().mapToInt((integerFuture) -> {
try {
return integerFuture.get();
} catch (Exception e) {
e.printStackTrace();
return 1;
}
}).reduce(1, (a, b) -> a * b);
System.out.println(result);
}
private static Callable<Integer> additionThread(int a, int b, char first, char second) {
return () -> {
int sum = a + b;
System.out.println(format(" Thread %s -> %s +%s = %s",Thread.currentThread().getName() ,first, second, sum));
return sum;
};
}
}
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
public class FormNumbersDivisibleBy3 {
public static void main(String[] args) {
System.out.println(formNumbers(new int[]{2,2}));
}
public static String formNumbers(int[] inputNumbers) {
int sum = getSum(inputNumbers);
List<Integer> integers = IntStream.of(inputNumbers).mapToObj(x -> x)
.sorted(Comparator.reverseOrder())
.collect(Collectors.toList());
int remainder = sum%3;
if (remainder == 0 ) {
return getResult(integers);
}
do {
if (integers.contains(remainder)){
integers.remove(Integer.valueOf(remainder));
sum = integers.stream().mapToInt(x-> x).sum();
remainder = sum%3;
if (remainder == 0 && integers.size() == 0) {
return "0";
} else {
return getResult(integers);
}
} else {
if (integers.size() > 0) {
int largeValue = integers.get(0);
if (largeValue < remainder) {
remainder--;
}else {
remainder = remainder + 3;
}
}
}
}while (sum > remainder);
return "0";
}
private static int getSum(int[] inputNumbers) {
return IntStream.of(inputNumbers).sum();
}
private static String getResult(List<Integer> integers) {
return integers.stream().map(String::valueOf).collect(Collectors.joining(""));
}
}
- binitbhas May 01, 2017