搜索
首页后端开发php教程检查某个单词是否作为句子中任何单词的前缀出现

Check If a Word Occurs As a Prefix of Any Word in a Sentence

1455。检查某个单词是否作为句子中任何单词的前缀出现

难度:简单

主题: 两个指针、字符串、字符串匹配

给定一个由一些由 单个空格分隔的单词和一个 searchWord 组成的句子,检查 searchWord 是否是句子中任何单词的前缀。

返回句子中单词的索引 (1-indexed),其中 searchWord 是该单词的前缀。如果 searchWord 是多个单词的前缀,则返回第一个单词的索引(最小索引)。如果没有这个词返回-1。

字符串 s 的 前缀 是 s 的任何前导连续子串。

示例1:

  • 输入:句子=“我喜欢吃汉堡”,searchWord =“burg”
  • 输出: 4
  • 解释:“burg”是“burger”的前缀,是句子中的第四个单词。

示例2:

  • 输入:句子=“这个问题是一个简单的问题”,searchWord =“pro”
  • 输出: 2
  • 解释:“pro”是“problem”的前缀,是句子中的第二个和第六个单词,但我们返回 2,因为它是最小索引。

示例 3:

  • 输入:句子=“我累了”,searchWord=“你”
  • 输出: -1
  • 解释:“你”不是句子中任何单词的前缀。

约束:

  • 1
  • 1
  • 句子由小写英文字母和空格组成。
  • searchWord由小写英文字母组成。

提示:

  1. 首先提取句子中的单词。
  2. 检查每个单词是否 searchWord 出现在索引 0 处,如果是,则返回该单词的索引(1-索引)
  3. 如果 searchWord 不存在作为任何单词的前缀,则返回默认值 (-1)。

解决方案:

我们可以将任务分解为以下步骤:

  1. 将句子拆分成单个单词。
  2. 迭代单词并检查 searchWord 是否是每个单词的前缀。
  3. 如果单词以 searchWord 开头,则返回该单词的 1 索引位置。
  4. 如果没有单词匹配,则返回-1。

让我们用 PHP 实现这个解决方案:1455。检查某个单词是否作为句子中任何单词的前缀出现

<?php /**
 * @param String $sentence
 * @param String $searchWord
 * @return Integer
 */
function isPrefixOfWord($sentence, $searchWord) {
    ...
    ...
    ...
    /**
     * go to ./solution.php
     */
}

// Example Usage:
echo isPrefixOfWord("i love eating burger", "burg");  // Output: 4
echo isPrefixOfWord("this problem is an easy problem", "pro");  // Output: 2
echo isPrefixOfWord("i am tired", "you");  // Output: -1
?>

解释:

  1. 将句子拆分为单词:

    我们使用explode(" ", $sentence) 将句子拆分为单词数组。

  2. 迭代单词:

    使用 foreach 循环迭代句子中的每个单词。 $index 变量跟踪单词的位置(从 0 开始索引)。

  3. 检查前缀:

    使用 strpos($word, $searchWord) === 0 检查 searchWord 是否出现在当前单词的开头。

  4. 返回结果:

    如果找到匹配项,则通过将 1 添加到 $index 来返回该单词从 1 开始的索引。如果循环后没有找到匹配项,则返回-1。

示例输出:

  • 对于输入句子=“我喜欢吃汉堡”和searchWord =“burg”,输出为4,因为“burger”是第4个单词。
  • 对于输入句子 =“this Problem is an easy Problem”和 searchWord =“pro”,输出为 2,因为“problem”是第二个单词。
  • 对于输入句子=“我累了”和searchWord=“you”,输出为-1,因为没有单词以“you”开头。

时间复杂度:

  • 将句子拆分成单词需要 O(n),其中 n 是句子的长度。
  • 检查每个单词的前缀需要 O(m),其中 m 是搜索单词的长度。
  • 因此,整体时间复杂度为 O(n * m),这对于输入大小约束是有效的。

该解决方案满足约束条件,并且对于给定的输入大小是有效的。

联系链接

如果您发现本系列有帮助,请考虑在 GitHub 上给 存储库 一个星号或在您最喜欢的社交网络上分享该帖子?。您的支持对我来说意义重大!

如果您想要更多类似的有用内容,请随时关注我:

  • 领英
  • GitHub

以上是检查某个单词是否作为句子中任何单词的前缀出现的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
unset()和session_destroy()有什么区别?unset()和session_destroy()有什么区别?May 04, 2025 am 12:19 AM

Thedifferencebetweenunset()andsession_destroy()isthatunset()clearsspecificsessionvariableswhilekeepingthesessionactive,whereassession_destroy()terminatestheentiresession.1)Useunset()toremovespecificsessionvariableswithoutaffectingthesession'soveralls

在负载平衡的情况下,什么是粘性会话(会话亲和力)?在负载平衡的情况下,什么是粘性会话(会话亲和力)?May 04, 2025 am 12:16 AM

stickysessensureuserRequestSarerOutedTothesMeServerForsessionDataConsisterency.1)sessionIdentificeAssificationAssigeaSsignAssignSignSuserServerServerSustersusiseCookiesorUrlModifications.2)一致的ententRoutingDirectSsssssubsequeSssubsequeSubsequestrequestSameSameserver.3)loadBellankingDisteributesNebutesneNewuserEreNevuseRe.3)

PHP中有哪些不同的会话保存处理程序?PHP中有哪些不同的会话保存处理程序?May 04, 2025 am 12:14 AM

phpoffersvarioussessionsionsavehandlers:1)文件:默认,简单的ButMayBottLeneckonHigh-trafficsites.2)Memcached:高性能,Idealforsforspeed-Criticalapplications.3)REDIS:redis:similartomemememememcached,withddeddeddedpassistence.4)withddeddedpassistence.4)databases:gelifforcontrati forforcontrati,有用

PHP中的会话是什么?为什么使用它们?PHP中的会话是什么?为什么使用它们?May 04, 2025 am 12:12 AM

PHP中的session是用于在服务器端保存用户数据以在多个请求之间保持状态的机制。具体来说,1)session通过session_start()函数启动,并通过$_SESSION超级全局数组存储和读取数据;2)session数据默认存储在服务器的临时文件中,但可通过数据库或内存存储优化;3)使用session可以实现用户登录状态跟踪和购物车管理等功能;4)需要注意session的安全传输和性能优化,以确保应用的安全性和效率。

说明PHP会话的生命周期。说明PHP会话的生命周期。May 04, 2025 am 12:04 AM

PHPsessionsstartwithsession_start(),whichgeneratesauniqueIDandcreatesaserverfile;theypersistacrossrequestsandcanbemanuallyendedwithsession_destroy().1)Sessionsbeginwhensession_start()iscalled,creatingauniqueIDandserverfile.2)Theycontinueasdataisloade

绝对会话超时有什么区别?绝对会话超时有什么区别?May 03, 2025 am 12:21 AM

绝对会话超时从会话创建时开始计时,闲置会话超时则从用户无操作时开始计时。绝对会话超时适用于需要严格控制会话生命周期的场景,如金融应用;闲置会话超时适合希望用户长时间保持会话活跃的应用,如社交媒体。

如果会话在服务器上不起作用,您将采取什么步骤?如果会话在服务器上不起作用,您将采取什么步骤?May 03, 2025 am 12:19 AM

服务器会话失效可以通过以下步骤解决:1.检查服务器配置,确保会话设置正确。2.验证客户端cookies,确认浏览器支持并正确发送。3.检查会话存储服务,如Redis,确保其正常运行。4.审查应用代码,确保会话逻辑正确。通过这些步骤,可以有效诊断和修复会话问题,提升用户体验。

session_start()函数的意义是什么?session_start()函数的意义是什么?May 03, 2025 am 12:18 AM

session_start()iscucialinphpformanagingusersessions.1)ItInitiateSanewsessionifnoneexists,2)resumesanexistingsessions,and3)setsasesessionCookieforContinuityActinuityAccontinuityAcconActInityAcconActInityAcconAccRequests,EnablingApplicationsApplicationsLikeUseAppericationLikeUseAthenticationalticationaltication and PersersonalizedContentent。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。