前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >671. 循环单词重复加标记

671. 循环单词重复加标记

作者头像
和蔼的zhxing
发布于 2018-09-04 03:31:41
发布于 2018-09-04 03:31:41
57701
代码可运行
举报
运行总次数:1
代码可运行

The words are same rotate words if rotate the word to the right by loop, and get another. Count how many different rotate word sets in dictionary.

E.g. picture and turepic are same rotate words.

注意事项

所有单词均为小写。 样例 Given dict = ["picture", "turepic", "icturep", "word", "ordw", "lint"] return 3.

"picture", "turepic", "icturep" are same ratote words. "word", "ordw" are same too. "lint" is the third word that different from the previous two words.

重复加标记

难点在于如何判断是否是循环单词,看到别人的思路:可以把当前单词重复一次,然后所有的循环单词都是可以在这个重复的单词中找到的,其实有点像循环移位和线性移位的关系,周期延拓之后线性移位和循环移位的结果是一样的。 比如对于单词word,先重复一遍得到:wordword. word的循环单词都是wordword的子串,找子串可以借助string::find(s)函数,这样就能判断是否是子串。 这样我们就可以去遍历vector中的单词了,对于第一个单词,扩充,然后在余下的单词中找是循环关系的,找到的应该都是要标记出来的,要不会有重复,可以定义一个vector来标记这个单词是否被找到(找到了在后面就无需遍历了),每完成这样的一次查找,计数器+1,一直遍历到最后一个单词。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int countRotateWords(vector<string> words)
     {
        int res = 0;
        int sz = words.size();
        string dbCurrent;
        vector<bool> check(sz, false);
        if (words.empty())
        return res;
        for (int i = 0; i < sz; i++)
        {
        if (!check[i])
        {
            dbCurrent = words[i] + words[i];
            for (int j = i + 1; j < sz; j++)
            {
                if (words[j].size() == words[i].size() && dbCurrent.find(words[j])!=string::npos)
                    check[j] = true;
            }
            res++;
        }
        }
        return res;
     }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.01.31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
CentOS7下安装Sphinx 中文分词【PHP+MySQL】
Mysql 的搜索,只能很简单的like '%无道%',那显然是远远不够的。只能找第三方的服务。
无道
2019/11/13
1.8K0
CentOS7下安装Sphinx 中文分词【PHP+MySQL】
Sphinx&coreseek实现中文分词索引
众所周知,mysql等数据库的LIKE模糊搜索不支持索引,因此查询效率极低,需要结合第三方索引引擎程序(索引程序)来提高查询性能。
CS逍遥剑仙
2018/10/11
1.7K0
Sphinx&coreseek实现中文分词索引
windows7使用Sphinx+PHP+MySQL详细介绍
由于业务需要,需要做类似淘宝商城商品检索的功能,对于数据量很大的情况,MySQL 查询的效率损耗很大,需要使用专门的索引引擎进行搜索查询,实现功能,对于和 PHP 和 Mysql 的结合的索引引擎中, xunsearch 和 sphinx 是较为著名的,但由于 xunsearch 服务器端不支持 windows,所以暂且先考虑 sphinx 的使用。sphinx 目前已支持简体中文、繁体中文和英文的检索,不需要额外安装插件支持。
程序小工
2018/09/12
2.2K0
Coreseek:部门查询和增量索引代替实时索引
索引系统需要通过主查询来获取所有的文档信息,一个简单的实现是整个表的数据到内存,但是这可能会导致整个表被锁定,并且使其它操作被阻止(例如:在MyISAM格款式上INSERT操作)。同时,会浪费大量的内存来存储查询结果。喜欢它的问题。 为了避免出现这样的情况。CoreSeek/Sphinx支持一种被称为 区段查询的技术. 首先,CoreSeek/Sphinx从数据库中取出文档ID的最小值和最大值。将由最大值和最小值定义自然数区间分成若干份,一次获取数据。建立索引。现举比例如以下:
全栈程序员站长
2022/07/18
3330
php_sphinx安装使用
Sphinx的使用背景:在mysql中优化的时候,对varchar,char,text对这些数据进行查询时,如果我们使用like ‘%单词’,是无法使用到索引,如果网站的数据量比较大,会拖垮网站的速度。
全栈程序员站长
2022/07/07
6400
如何在CentOS 7上安装和配置Sphinx
Sphinx是一个开源搜索引擎,允许全文搜索。众所周知,它能非常有效地对大数据进行搜索。要编制索引的数据通常来自非常不同的来源:SQL数据库,纯文本文件,HTML文件,邮箱等。
SQL GM
2018/09/28
2.9K0
如何在Ubuntu 16.04上安装和配置Sphinx
Sphinx是一个开源搜索引擎,允许全文搜索。众所周知,它能非常有效地对大数据进行搜索。要编制索引的数据通常来自非常不同的来源:SQL数据库,纯文本文件,HTML文件,邮箱等。
无敌小笼包
2018/09/28
3.2K0
使用PHP+Sphinx建立高效的站内搜索引擎
假设你现在运营着一个论坛,论坛数据已经超过100W,很多用户都反映论坛搜索的速度非常慢,那么这时你就可以考虑使用Sphinx了(当然其他的全文检索程序或方法也行)。
Java架构师必看
2021/03/22
2.4K0
php sphinx 全文检索 中文分词
高久峰
2023/06/03
6340
coreseek安装步骤分享
yum install gcc make gcc-c++ libtool autoconf automake imakemysql-devel libxml2-devel expat-devel
PM吃瓜
2019/08/12
1.6K0
coreseek安装步骤分享
Ubuntu系统,搭建mysql+sphinx环建
本文介绍下如何在ubuntu系统中,利用apt工具,搭建mysql+sphinx的全文检索环境。
王亚昌
2018/08/03
1.6K0
Ubuntu系统,搭建mysql+sphinx环建
Sphinx源码学习笔记(一):索引创建
  因为项目开发需要在游戏内部实现玩家名称的模糊查找功能,本身直接使用Sphinx配置mysql可以直接搭建一套模糊匹配的即可支持功能的实现。
dylan_若水
2018/06/21
2.2K0
sphinx 配置 及 小内存解决办法
不得不说 sphinx 很消耗内存占用,目前种子网站跑的机器是2G内存的,今天重新试了一下1G内存的vps,正常配置下依旧跑不动 查看 searchd.log 依旧被kill掉了。
上山打老虎了
2022/06/14
1K0
lnmp+coreseek实现站内全文检索
<font color='red'>在安装csft的过程中出现了三种错误情况,错误情况如下错误记录,可以参考修改即可</font>
兔云小新LM
2018/11/16
6270
lnmp+coreseek实现站内全文检索
Sphinx + Coreseek 实现中文分词搜索
全文检索是数据库的有力补充,全文检索并不能替代数据库在应用系统中的作用。当应用系统的数据以大量的文本信息为主时,採用全文检索技术能够极大的提升应用系统的价值。
全栈程序员站长
2022/07/20
1.6K0
【总结】两个月的工作任务总结
从 2018.4.2 工作以来,不知不觉已经工作两个多月,并在昨天约谈从这个月开始转正。从刚开始的自己学习,到逐渐接触公司的项目,并完成交付的功能模块,学到了很多,也发现了自己存在的不足,所以作此总结,激励自己,并鞭策自己,不骄不躁,不悲不怒,养成良好的心态,并坚持学习,保持热情!
程序小工
2018/09/12
1.3K0
coreseek_coreone
SQL 结构化查询语言(是一种标准,所有的关系型数据库Mysql,sqlserver,oracle)
全栈程序员站长
2022/09/20
2700
coreseek实现中文检索服务
主要参考了两篇文章,使用的安装版本为 coreseek-4.1-beta.tar 文章一,原地址为:http://zhan.renren.com/itbegin?gid=360288849803348
王亚昌
2018/08/03
9350
xapian 搜索引擎介绍与使用入门
Xapian 是一个开源搜索引擎库,使用 C++ 编写,并提供绑定(bindings )以允许从多种编程语言使用。它是一个高度适应性的工具包,允许开发人员轻松地将高级索引和搜索功能添加到自己的应用程序中。Xapian 支持多种加权模型和丰富的布尔查询运算符。最新稳定版本是 1.4.24,发布于 2023 年 11 月 6 日。
JadePeng
2024/01/19
5280
7种SQL走索引or不走索引的优化,你竟然还不了解?
在传统的系统应用程序中我们通常都会和数据库建立连接进行数据的读写操作,为了减少连接数据库造成的资源消耗于是有了数据库连接缓冲池。在此基础上,SQL 语句的优化对于研发人员也是非常重要的,高效的 SQL 语句经常会给使一个业务逻辑的接口响应速度变得非常快。所以本篇小编将主要从 SQL 语句的优化给出一些建议以及如何使用 SQL 语句里面的关键字等才能使 SQL 的执行效率相对提升,并且分享一份MySQL优化学习笔记,希望给研发人员在编写 SQL 语句时能有一些帮助。
Java程序猿
2021/06/01
7.6K1
相关推荐
CentOS7下安装Sphinx 中文分词【PHP+MySQL】
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验