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

网站为什么需要备案网站推广策划思路的内容

网站为什么需要备案,网站推广策划思路的内容,电商网站业务流程,中国电子第三建设公司官网给定一个 m x n 二维字符网格 board 和一个单词(字符串)列表 words, 返回所有二维网格上的单词 。 单词必须按照字母顺序,通过 相邻的单元格 内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一…

给定一个 m x n 二维字符网格 board 和一个单词(字符串)列表 words, 返回所有二维网格上的单词 。

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

这里我们需要在字符表中查找words中的单词,如果我们暴力搜索,然后再去检验的化,效率很低,并且每个点都需要搜索所以行不通
这里我们直接建立words的Trie 然后dfs 建立的Trie 大大减少了dfs的范围

Trie节点Trienode 

这里使用map<char,Tirenode*>内存确实效率更好

struct Tirenode
{unordered_map<char,Tirenode*> next;string s="";                       //标记单词 
};

 Trie节点的添加

 void insert_(string& word){                auto node=this->root;     //遍历节点for(auto c:word){if(!node->next.count(c)) node->next[c]=new Tirenode();  node=node->next[c];}node->s=word; //标记单词}

dfs查找

 我们已经将words的单词假如到了Trie结构中
 所以我们只要dfs board中的字符看是否能搜索到temp不为空字符的情况即可
 去重的话如果我们搜索到了单词temp则将它置空,表示我们已经push_back过了 

 void dfs(point p,vector<vector<char>>& board,Tirenode* temp){auto [x,y]=p;        //结构化绑定char c=board[x][y];  //记录当前字母if(!temp->next.count(c)) return;  //搜索到尾了 则退出递归//搜索到单词if(temp->next[c]->s!="") {dp.push_back(temp->next[c]->s);temp->next[c]->s="";};        //标记当前单词表示已经搜索board[x][y]='#';//dfs搜索for(int i=0;i<4;i++){int nx=x+a[i];int ny=y+b[i];if(nx>=0&&nx<board.size()&&ny>=0&&ny<board[0].size()&&board[nx][ny]!='#'){dfs({nx,ny},board,temp->next[c]);}}//回溯board[x][y]=c;}

完整代码: 

class Solution {
public:typedef pair<int,int> point;vector<string> dp;int a[4]={0,0,1,-1};int b[4]={1,-1,0,0};int max_=0;struct Tirenode{unordered_map<char,Tirenode*> next;string s="";};Tirenode* root=new Tirenode();void insert_(string& word){auto node=this->root;for(auto c:word){if(!node->next.count(c)) node->next[c]=new Tirenode();node=node->next[c];}node->s=word;}void dfs(point p,vector<vector<char>>& board,Tirenode* temp){auto [x,y]=p;char c=board[x][y];if(!temp->next.count(c)) return;if(temp->next[c]->s!="") {dp.push_back(temp->next[c]->s);temp->next[c]->s="";};board[x][y]='#';for(int i=0;i<4;i++){int nx=x+a[i];int ny=y+b[i];if(nx>=0&&nx<board.size()&&ny>=0&&ny<board[0].size()&&board[nx][ny]!='#'){dfs({nx,ny},board,temp->next[c]);}}board[x][y]=c;}vector<string> findWords(vector<vector<char>>& board, vector<string>& words) {for(auto s:words)  insert_(s);  int m=board.size();int n=board[0].size();for(int i=0;i<m;i++){for(int j=0;j<n;j++){dfs({i,j},board,this->root);}}return dp;}
};

http://www.tj-hxxt.cn/news/119850.html

相关文章:

  • 如何做纯文本网站网络营销推广活动
  • 青岛专业网站建设公司高端营销型网站
  • 玉林网站建设培训qq群推广链接
  • 怎么做网站内链微信社群营销推广方案
  • 客服网站制作百度云搜索引擎官网入口
  • 做网站便宜还是app便宜企业关键词优化专业公司
  • 佛山网站建设seo优化免费网站
  • 国家承认的设计师证书有哪些seo技术优化技巧
  • 北京私人做网站百度热搜广告位多少钱
  • 个人网站建设的过程地推拉新app推广接单平台
  • 中国电子政务网站建设意见seo网络推广经理招聘
  • 网站建设行业 前景西安网站关键词推广
  • ftps 网站怎么做百度下载安装免费
  • 做网站怎么做连接点下一个页面网站排名优化怎样做
  • 网站做不好一直不交付怎么办重庆seo报价
  • 虚拟空间网站回收池有什么作用百度视频下载
  • 医院做网站怎么做注册城乡规划师
  • 做招聘信息的网站有哪些内容seo销售好做吗
  • 邯郸哪里做网站优化优化方法
  • 邢台做网站的公司简述优化搜索引擎的方法
  • 一级a做爰片免费网站国语版的上海网站seo公司
  • 建设部网站监理注销查询西安网站推广助理
  • 做音乐网站需要版权么地推接单平台
  • 做一个网站需要怎么做seo行业岗位有哪些
  • 如何在网站做电子杂志推广关键词外包
  • 菏泽网站建设公司官网小程序设计
  • 云南昆明网站建设集客营销软件官方网站
  • 网站 js 广告代码大全长春免费网上推广
  • WordPress点击显示弹窗内容seo怎么优化方法
  • 外贸网网站建设推广网络推广平台