Venu Madhav Chitta
BAN USERVery Simple DFS based solution....
class GeneratePhoneDigits {
static char[][] letter =
{
{},{},{'A','B','C'},{'D','E','F'},{'G','H','I'},{'J','K','L'},{'M','N','O'},{'P','Q','R'},
{'S','T','U'},{'V','W','X','Y','Z'}
};
public static void generatePhoneDigits(String s, char[][] letters,int index, String temp)
{
if (index == s.length()) {System.out.println(temp); return;}
if ((s.charAt(index)-'0')==0||(s.charAt(index)-'0')==1)
generatePhoneDigits(s,letters,index+1,temp);
for (int i=0;i<letters[((int)(s.charAt(index)-'0'))].length;i++)
generatePhoneDigits(s,letters,index+1,temp+(letters[((int)(s.charAt(index)-'0'))][i]));
}
public static void main(String[] args) {
String s="27190000";
generatePhoneDigits(s,letter,0,"");
}
}
- Venu Madhav Chitta February 24, 2015DFS traversal would serve the purpose for this problem
import java.util.*;
class WordFindMatrix {
public static int[] dx = {-1,-1,0,1,1,1,0,-1};
public static int[] dy = {0,1,1,1,0,-1,-1,-1};
public static boolean isValid(char[][] mat,boolean[][]isVisited,int m, int n,int a, int b,int x, int y, String word, int i)
{
if (x<0||y<0||x>=m||y>=n||isVisited[x][y]==true||word.charAt(i)!=mat[x][y]) return false;
return true;
}
public static void dfs(char[][] mat, String word,int r,int c,ArrayList <Integer> l)
{
boolean[][] isVisited=new boolean[r][c];
for (int i=0;i<r;i++)
for (int j=0;j<c;j++)
isVisited[i][j]=false;
for (int i=0;i<r;i++)
for (int j=0;j<c;j++)
if (mat[i][j]==word.charAt(0))
if(dfsHelper(mat,isVisited,word,0,i,j,r,c,l)==true) return;
}
public static boolean dfsHelper(char[][] mat,boolean[][]isVisited,String word, int index,int x,int y, int r, int c,ArrayList<Integer>l)
{
if(index+1 == word.length()){l.add(x);l.add(y); return true;}
for (int i=0;i<8;i++){
l.add(x);
l.add(y);
isVisited[x][y]=true;
if(isValid(mat,isVisited,r,c,x,y,x+dx[i],y+dy[i],word,index+1)==true){
if (dfsHelper(mat,isVisited,word,index+1,x+dx[i],y+dy[i],r,c,l)==true) return true;
}
l.remove(l.size()-1);
l.remove(l.size()-1);
isVisited[x][y]=false;
}
return false;
}
public static void main(String[] args) {
char mat[][]={{'a','b','i','a'},{'d','n','i','m'},{'i','n','a','e'},{'a','n','v','p'}};
String wordToSearch = "aibnnnvp";
ArrayList <Integer> l = new ArrayList<Integer>();
dfs(mat,wordToSearch,mat.length,mat[0].length,l);
for (int i=0;i<l.size();i=i+2)
System.out.print("("+l.get(i)+","+l.get(i+1)+")"+"-->");
}
}
- Venu Madhav Chitta February 23, 2015import java.util.*;
class PhoneNum {
public static void generatePhoneNumber(String s,ArrayList<Integer> l,int len,int k)
{
if (len==0&&s.length()>1) {System.out.println(s);return;}
for (int i=0;i<l.size();i++)
if (l.get(i)==4) {if (s.length()==0) generatePhoneNumber("4",l,len-1,k+1);}
else if(s.length()==0||(s.charAt(s.length()-1)-'0')!=l.get(i))generatePhoneNumber(s+l.get(i),l,len-1,k+1);
}
public static void main(String args []){
int n1=9,n2=7,n3=5;
ArrayList<Integer> v1 = new ArrayList<Integer>();
for(int i=0; i<10; i++) v1.add(i);
System.out.println(v1);
v1.remove(Integer.valueOf(n1));
v1.remove(Integer.valueOf(n2));
v1.remove(Integer.valueOf(n3));
System.out.println(v1);
generatePhoneNumber("",v1,4,0);
}
}
- Venu Madhav Chitta February 23, 2015import java.util.*;
public class WellOrderedStrings {
static void findPossible (String s,int index,int k,List<String> l)
{
if (index==0) {l.add(s);return;}
for (int i=k;i<26;i++)
{
findPossible(s+((char)('a'+i)),index-1,i+1,l);
findPossible(s+((char)('A'+i)),index-1,i+1,l);
}
}
public static void main(String[] args) {
int n=2;
List<String> l = new ArrayList<String>();
findPossible("",n,0,l);
System.out.println("Total of:" + l.size());
System.out.println(l);
}
}
public class Test6 {
public static int GCD(int a,int b)
{
if(b==0) return a;
return GCD(b,a%b);
}
public static void main (String[] args ) {
double num=0.32;
int mul = 10000;
int n=(int) (num*10000);
int gcd = GCD(n,(int)mul);
System.out.println(n/gcd+"/"+mul/gcd);
}
}
- Venu Madhav Chitta February 24, 2015