puttappa.raghavendra
BAN USERpublic static void main(String[] args) {
// Sorted array
int [] array = { 1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5 };;
int counter = 0;
for( int i = 0; i < array.length; i++ ){
if( ( counter != 0 && ( i + 1) < array.length && array[i] != array[i+1]) || ( counter != 0 && i == array.length -1 ) ){
System.out.println( array[i] + " appread " + ++counter + " times");
counter = 0;
}else if( (i + 1) < array.length && array[i] == array[i+1]){
++counter;
}
}
}
public static void main(String[] args) {
System.out.println("Valid Words:" + printAllValidWords(new Character[]{'e','o','b','a','m','g','l'}, new HashSet<String>(){{
addAll( Arrays.asList( "go","goa","bat","me","eat","goal","boy","run"));
}}));
}
private static List<String> printAllValidWords( Character [] cArray, Set<String> dictionary ){
Set<Character> charSet = new HashSet<Character>(Arrays.asList( cArray ));
Map<Character, List<String>> charMapping = getWordsStartingFromChar( dictionary );
List<String> validWords = new ArrayList<String>();
for( Character ch: charSet ){
if( charMapping.containsKey( ch )){
List<String> chWords = charMapping.get(ch);
for( String word: chWords ){
char [] wordChar = word.toCharArray();
StringBuffer buffer = new StringBuffer();
for( char c: wordChar ){
if( charSet.contains( c )){
buffer.append( c );
}else {
break;
}
}
if( buffer.toString().equals( word )){
validWords.add( word );
}
}
}
}
return validWords;
}
private static Map<Character, List<String>> getWordsStartingFromChar(Set<String> validWords){
Map<Character, List<String>> charToWord = new HashMap<Character, List<String>>();
for( String word: validWords ){
if( !charToWord.containsKey( word.charAt(0))){
charToWord.put( word.charAt(0), new ArrayList<String>());
}
charToWord.get( word.charAt(0)).add( word );
}
return charToWord;
}
public static void main(String[] args) {
String [] pattern = { "a","b","b","a" };
String [] inputs = {
"cat dog cat cat",
"cat dog dog cat",
"dog cat cat dog",
"cat cat cat cat",
"cat dog cat dog"
};
System.out.println("Pattern:" + "a,b,b,a" );
for( String input: inputs ){
System.out.println( "Does String Match the Pattern: " + input + "\t:" + patternMatch( input.split(" "), pattern ));
}
}
private static boolean patternMatch( String [] input, String [] pattern ){
if( input.length != pattern.length){
return false;
}
Map<String, String> dic = new HashMap<String, String>();
for( int i = 0; i < input.length; i++ ){
if( !dic.containsKey( pattern[i]) && !dic.containsKey( input[i])){
dic.put( pattern[i], input[i]);
dic.put( input[i] , pattern[i]);
}else if( dic.get( pattern[i]) == null || !dic.get( pattern[i]).equals( input[i]) ){
return false;
}
}
return true;
}
public static void main(String[] args) {
int [] arrays = {2,3,1,4,3,2};
int sum = 1;
for( int i = 0; i < arrays.length; i++ ){
sum = sum * arrays[i];
}
for( int i = 0; i < arrays.length; i++ ){
System.out.println( sum / arrays[i]);
}
}
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
/*
* Given an array of numbers, print all pair (2) of numbers in the array
* if sum also present in the array
*/
public class ArrayPairSumInArray {
public static void main(String[] args) {
int[] iArrays = {1, 3, 2, 6, 9, 8, 7 };
Arrays.sort( iArrays );
Set<Integer> set = new HashSet<Integer>();
for( int num: iArrays ){
set.add( num );
}
for( int i = 2; i < iArrays.length; i++ ){
for( int j = i - 1; j > 0; j-- ){
if( set.contains(iArrays[i] - iArrays[j]) && (iArrays[i]-iArrays[j]) < iArrays[j]){
System.out.println("[ " + ( iArrays[i] - iArrays[j]) + "+" + iArrays[j] + " ] = " + iArrays[i]);
}
}
}
}
}
/*
* Return pivot index of the given array of numbers
* the pivot index is the index where sum of left and right side is equals
*/
public class PivotIndexForArray {
public static void main(String[] args) {
int arrays [] = {1,2,3,4,1,0,4,0,6};
System.out.println( getPivot( arrays ));
}
private static int getPivot( int [] arrays ){
for( int i = 1; i < arrays.length; i++ ){
if( getSumFromStartToEnd( 0, i, arrays) == getSumFromStartToEnd( i+1, arrays.length, arrays)){
return i;
}
}
return -1;
}
private static int getSumFromStartToEnd( int start, int end, int [] arrays ){
if( arrays.length > 0 && start < end ){
int sum = 0;
for( int i = start; i < end; i++ ){
sum += arrays[i];
}
return sum;
}
return 0;
}
}
- puttappa.raghavendra December 04, 2016