Java版单词搜索

Posted z2529827226

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java版单词搜索相关的知识,希望对你有一定的参考价值。

package bfs;

class Solution
    private boolean used[][];
    private int dir[][]=new int[][] -1,0,0,-1,1,0,0,1;
    public boolean isCheckMove(String[] map,int x,int y) 
        return x>=0&&x<map.length&&y>=0&&y<map[x].length();
    
     public boolean bfs(String[] map,String word,int Index,int startX,int startY) 
         if(word.charAt(Index)==map[startX].charAt(startY)) 
             if(Index==word.length()-1) 
                 return word.charAt(Index)==map[startX].charAt(startY);
             
             used[startX][startY]=true;
             for(int i=0;i<4;++i) 
                 int newX=startX+dir[i][0];
                 int newY=startY+dir[i][1];
                 if(isCheckMove(map,newX,newY)&&!used[newX][newY]&&bfs(map,word,Index+1,newX,newY)) 
                     return true;
                 
             
             used[startX][startY]=false;
         
         return false;
     
     public boolean num(String[] map,String word) 
         used=new boolean[map.length][map[0].length()];
         for(int i=0;i<map.length;++i) 
             for(int j=0;j<map[i].length();++j) 
                 used[i][j]=false;
             
         
        for(int i=0;i<map.length;++i) 
            for(int j=0;j<map[i].length();++j) 
                if(word.charAt(0)==map[i].charAt(j)&&bfs(map,word,0,i,j)) 
                    return true;
                
            
        
         return false;
     



public class Test 
    public static void main(String[] args) 
      String word="bfskhj";
      String map[]= "abc","dfe","fsg","hkj";
      Solution space=new Solution();
      if(space.num(map, word)) 
          System.out.println("true");
      
      else 
          System.out.println("false");
      
    

 

以上是关于Java版单词搜索的主要内容,如果未能解决你的问题,请参考以下文章

单词替换,substring妙用,Java实现详细版

单词替换,substring妙用,Java实现详细版

leetcode刷题40.最后一个单词的长度——Java版

笔记

笔记

Java版高级数据结构二叉搜索树&红黑树