当前位置: 首页 > news >正文

网站怎么做要多少钱上海市人大常委会

网站怎么做要多少钱,上海市人大常委会,做淘客网站需要企业的域名,网站建设合同书简单版给定一个二维网格 board 和一个字典中的单词列表 words,找出所有同时在二维网格和字典中出现的单词。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母在一个…

给定一个二维网格 board 和一个字典中的单词列表 words,找出所有同时在二维网格和字典中出现的单词。

单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母在一个单词中不允许被重复使用。

示例:

输入: 
words = ["oath","pea","eat","rain"] and board =
[['o','a','a','n'],['e','t','a','e'],['i','h','k','r'],['i','f','l','v']
]输出: ["eat","oath"]

思路:

1、要打印所有情况,因此进行dfs,单词不允许重复,使用Set存储结果

2、将字典词存到字典树中

3、以二维数组每一个元素为单词第一个字母去遍历字典树,二维数组中的延伸方向为上下左右,使用visit数组保存是否访问过节点,使用数组边界判断避免越界

4、在dfs过程中判断单词所在字典树的节点end属性是否为true,为true添加该节点,继续dfs

5、dfs结束条件为树节点为null,返回false;

class Solution {//构建trie树节点public class TrieNode{private Map<Character,TrieNode> map = new HashMap<>();private boolean end;public TrieNode getSubNode(Character key){return map.get(key);}public void addSubNode(Character key,TrieNode value){map.put(key,value);}public boolean containsNode(Character key){return map.containsKey(key);}public boolean isEnd(){return end;}public void setEnd(boolean end){this.end=end;}}public List<String> findWords(char[][] board, String[] words) {TrieNode root=new TrieNode();root = insertWord(root,words);List<String> list = new ArrayList<>();Set<String> set = new HashSet<>();StringBuilder sb = new StringBuilder();boolean[][] visit = new boolean[board.length][board[0].length];int count=0;for(int i=0;i<board.length;i++){for(int j=0;j<board[0].length;j++){  searchWords(i,j,root,board,set,sb,visit);}}for(String s:set){list.add(s);}return list;}//插入字典单词到trie树public TrieNode insertWord(TrieNode root,String[] words){TrieNode tmpNode = root;for(int i=0;i<words.length;i++){tmpNode=root;for(int j=0;j<words[i].length();j++){char c = words[i].charAt(j);TrieNode node = tmpNode.getSubNode(c);if(node==null){node=new TrieNode();tmpNode.addSubNode(c,node);}tmpNode=node;if(j==words[i].length()-1){tmpNode.setEnd(true);}}}return root;}public boolean searchWords(int i,int j,TrieNode node,char[][] board,Set<String> list,StringBuilder sb,boolean[][] visit){boolean success=false;TrieNode tmpNode = node.getSubNode(board[i][j]);if(tmpNode==null){return false;}else{sb.append(board[i][j]);visit[i][j]=true;if(tmpNode.isEnd()){list.add(new String(sb));}if((i>0&&!visit[i-1][j])&&!success){success=searchWords(i-1,j,tmpNode,board,list,sb,visit);}if((i<board.length-1&&!visit[i+1][j])&&!success){success=searchWords(i+1,j,tmpNode,board,list,sb,visit);}if((j>0&&!visit[i][j-1])&&!success){success=searchWords(i,j-1,tmpNode,board,list,sb,visit);}if((j<board[0].length-1&&!visit[i][j+1])&&!success){success=searchWords(i,j+1,tmpNode,board,list,sb,visit);}sb.delete(sb.length()-1,sb.length());visit[i][j]=false;}return false;}
}

 

http://www.lbrq.cn/news/2779507.html

相关文章:

  • 怎样上传网站程序兰州seo实战优化
  • 如何做高并发网站的架构设计杭州百度快速排名提升
  • 沈阳做网站一诚金网络专业360广告联盟平台
  • 学做网站要学什么软件百度网盘电脑版下载
  • 家具行业做那个国际网站比较好搜索引擎营销的特点是
  • 小说网站开发猪八戒软文素材
  • 注册完域名 如何做网站张家口网站seo
  • 福田欧曼故障灯图解大全东莞网站优化关键词排名
  • 阿里云免费网站备案搭建网站平台需要多少钱
  • 男女直接做视频网站营销策略有哪些有效手段
  • 大良做网站哈尔滨网站推广
  • 石家庄网站建设就找企行家网络宣传平台有哪些
  • 杭州网站模板建站免费发布友链
  • 网站的会员系统怎么做seo销售
  • 山东济南网站建设公司计算机基础培训机构
  • 西安做网站推广宣传推广网络推广
  • 微信编辑器做网站百度搜索竞价推广
  • 临朐网站建设定制首选哪家公司成都网络营销推广
  • 太原网站制作建设怎么自己建网站
  • 印江建设局网站百度搜索引擎盘搜搜
  • 大学生做兼职的网站有哪些站长网站大全
  • 手机网站营销的网站西安网站公司推广
  • 广东省建设信息网站企业网站建设公司
  • 专业建设网站哪家好百度快照是什么
  • 网站方案案例怎么做seo综合查询平台官网
  • 招工网站58同城朔州seo
  • 做网站什么科目宁波最好的seo外包
  • 好的网站建设天津seo管理平台
  • 手机app网站模板下载windows优化大师和鲁大师
  • 怎样能注册自己的网站网页制作工具有哪些
  • TDengine IDMP 运维指南(4. 使用 Docker 部署)
  • Android RxJava数据库操作:响应式改造实践
  • LINUX 软件编程 -- 线程
  • 零基础数据结构与算法——第八章 算法面试准备-数组/字符串/链表/树/动态规划/回溯
  • Zephyr下控制ESP32S3的GPIO口
  • 基于深度学习的车牌检测识别系统:YOLOv5实现高精度车牌定位与识别