W E L C O
M E T O Z
O H O C O
R P O R A
T I O N
And print the start and ending index as
Start index : <1,2>
End index: <3, 2>
import java.util.*;public class NewClass11 {
void print(int i,int j,int len,int k)
{
System.out.println(i+""+j);
if(k==0) //PRINT INDEX OF ROW
System.out.println(i+""+(j+len));
else //PRINT INDEX OF COL
System.out.println((i+len)+""+j);
}
void Rsearch(char c[][],int l,String sr,int j)
{
//row wise search
for(int i=0;i<=(l-sr.length());i++)
{String s="";
for(int k=i;k<i+sr.length();k++){
s+=c[j][k];
}
if(s.equals(sr))
{
print(j,i,sr.length(),0);
}
}
if(j<l-1)
{
Rsearch(c,l,sr,++j);
}
}
void Csearch(char c[][],int l,String sr,int j)
{
//column wise search
for(int i=0;i<=(l-sr.length());i++)
{ String s="";
for(int k=i;k<i+sr.length();k++){
s+=c[k][j];
}
if(s.equals(sr))
{
print(i,j,sr.length(),1);
}
}
if(j<l-1)
{
Csearch(c,l,sr,++j);
}
}
public static void main(String args[])
{
Scanner s=new Scanner(System.in);
String k="WELCOMETOZOHOCORPORATION";
String sr="TOO";
//SET LENGTH OF 2D ARRAY BASED ON LENGTH OF STRING
int l=(int)Math.sqrt(k.length());
if((l*l)<=k.length())
{
l++;
}
int t=0;
char c[][]=new char[l][l];
//STORE VALUES IN 2D ARRY
for(int i=0;i<l;i++)
{
for(int j=0;j<l;j++)
{
if(t<k.length())
c[i][j]=k.charAt(t);
t++;
}
}
NewClass11 ob=new NewClass11();
ob.Rsearch(c,l,sr,0);
ob.Csearch(c,l,sr,0);
}
}
No comments:
Post a Comment