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

怎样建设个人游戏网站app开发哪家公司好

怎样建设个人游戏网站,app开发哪家公司好,北京网站推广怎么做,wordpress导入媒体无法显示问题描述: 给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果 needle 不是 haystack 的一部分,则返回 -1 。 示例 1: 输入&…

问题描述: 

给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果 needle 不是 haystack 的一部分,则返回  -1 

示例 1:

输入:haystack = "sadbutsad", needle = "sad"
输出:0
解释:"sad" 在下标 0 和 6 处匹配。
第一个匹配项的下标是 0 ,所以返回 0 。

示例 2:

输入:haystack = "leetcode", needle = "leeto"
输出:-1
解释:"leeto" 没有在 "leetcode" 中出现,所以返回 -1 。

解题思路:

简单方法

class Solution {public int strStr(String haystack, String needle) {return haystack.indexOf(needle);}
}

利用现成的方法,indexOf方法就是返回匹配的第一个字符串的索引位置 

看一下源码(一环套一环):

public int indexOf(int ch, int fromIndex) {final int max = value.length;if (fromIndex < 0) {fromIndex = 0;} else if (fromIndex >= max) {// Note: fromIndex might be near -1>>>1.return -1;}if (ch < Character.MIN_SUPPLEMENTARY_CODE_POINT) {// handle most cases here (ch is a BMP code point or a// negative value (invalid code point))final char[] value = this.value;for (int i = fromIndex; i < max; i++) {if (value[i] == ch) {return i;}}return -1;} else {return indexOfSupplementary(ch, fromIndex);}}

暴力方法

  1. 初始化变量
    • haystack:要搜索的字符串。
    • needle:要查找的子字符串。
    • haystackLengthhaystack的长度。
    • needleLengthneedle的长度。
    • result:用于存储匹配项的下标,初始化为-1(表示未找到)。
  2. 遍历haystack
    • 使用一个循环遍历haystack,从索引0开始,直到haystackLength - needleLength(因为从当前位置开始,如果剩余长度小于needle的长度,则不可能匹配)。
  3. 检查匹配
    • 在每次循环中,从当前索引开始,比较haystackneedle的字符,直到匹配完整个needle或发现不匹配。
    • 如果发现完全匹配,则更新result为当前索引,并跳出循环(因为我们只需要找到第一个匹配项)。
  4. 返回结果
    • 如果找到匹配项,则返回result
    • 否则,返回-1。
      public class StringMatcher {public static int strStr(String haystack, String needle) {int haystackLength = haystack.length();int needleLength = needle.length();if (needleLength == 0) {return 0; // 如果needle为空字符串,则任何位置都是匹配项,返回0(根据题意)}for (int i = 0; i <= haystackLength - needleLength; i++) {int j;for (j = 0; j < needleLength; j++) {if (haystack.charAt(i + j) != needle.charAt(j)) {break; // 一旦发现不匹配,跳出内层循环}}if (j == needleLength) {return i; // 如果完全匹配,返回当前索引}}return -1; // 未找到匹配项,返回-1}public static void main(String[] args) {String haystack = "hello haystack";String needle = "stack";int index = strStr(haystack, needle);System.out.println("The first occurrence of \"" + needle + "\" in \"" + haystack + "\" is at index: " + index);}
      }

代码解释: 

外层循环

for (int i = 0; i <= haystackLength - needleLength; i++) 
  • 这个循环从haystack的第一个字符开始,直到haystack中剩余字符的数量不足以匹配整个needle为止。
  • 变量i代表当前正在检查的haystack中的起始位置。
  • 条件i <= haystackLength - needleLength 确保了 i + needleLength 不会超过 haystack的长度,从而避免 StringIndexOutOfBoundsException
  • 体会一下,比如第一个字符串是234523,第二个字符串是23。那只需要外层循环6-2=4(次)

内层循环

for (j = 0; j < needleLength; j++) {
if (haystack.charAt(i + j) != needle.charAt(j)) 
  • 这个循环用于逐个字符地比较haystack从位置i开始的子字符串和needle
  • 变量j代表当前正在比较的字符的索引。
  • 如果在任何时候haystack中的字符与needle中的对应字符不匹配,break语句会立即终止内层循环。

还有KMP算法,但是不会用,后面慢慢学习! 

http://www.yayakq.cn/news/351967/

相关文章:

  • 做网站海口网页设计师证书报考条件
  • 如何优化网站推广张家港市做网站的公司
  • 如何做淘外网站推广济南mip网站建设公司
  • 如何做kindle电子书下载网站wordpress主题森林 终身
  • seo百家外链网站人工智能培训机构排名前十
  • 门图书馆户网站建设方案广州 骏域网站建设 陶瓷
  • 织梦怎么制作网站微网站建设找哪家
  • wap建站模板旅游网站制作教程
  • wordpress类似网站模板网页加速器推荐
  • 梅州公司做网站王野天天
  • 北京网站建设搜q.479185700网站推广系统
  • 打车网站开发如何建设网站推广平台
  • 山东建设监理协会网站网站建设最好用什么语言
  • 网站源码 酷h5短视频源码
  • 网站建设网络宣传游戏网站如何做
  • 有哪些网站做二手房好的建设系统网站
  • 网站开发协议书由谁来写普通网站建设的缺陷
  • 网站建设实训报告心得体会企业信息管理系统免费
  • 广州网站建设 领航科技苏州网站制作开发公司
  • 直播间 网站建设十大app排行榜
  • 六安做网站多少钱专业定制网页设计
  • 如何做网站充值接口设计企业网站内容
  • 文昌建设局网站长沙做网站建设公司哪家好
  • 网页版梦幻西游红拂女安卓aso优化排名
  • 安庆市重点工程建设局网站网站响应速度多少合适
  • 易语言做网站爆破工具电子商务的网站建设分析
  • vr成品网站源码在线观看微商货源网站源码
  • 建设网站用什么空间服务器商城全网推广运营公司
  • 建设部网站施工合同范本html转pdf在线
  • 广州网站开发哪家强注册公司流程及步骤