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

哪里可以免费建网站vs2017 网站开发

哪里可以免费建网站,vs2017 网站开发,lamp 网站建设论文,南京手机网站242.有效的字母异位词 数组、set、map,数组是比较高效查找的 函数功能 判断字符串 s 和 t 是否互为字母异位词。如果它们包含相同的字符且每个字符出现的次数也相同,那么它们互为字母异位词。 代码逻辑 长度检查: if (s.length ! t.lengt…

242.有效的字母异位词

数组、set、map,数组是比较高效查找的

函数功能

判断字符串 st 是否互为字母异位词。如果它们包含相同的字符且每个字符出现的次数也相同,那么它们互为字母异位词。

代码逻辑

  1. 长度检查

    if (s.length !== t.length) return false;

    如果 s t 的长度不相等,它们不可能是字母异位词,直接返回 false

  2. 初始化计数器数组

    const resSet = new Array(26).fill(0); 
    const base = "a".charCodeAt();
    • resSet 是一个长度为 26 的数组,用于存储每个小写字母的出现次数(假设 st 只包含小写字母)。
    • base 存储了字母 'a' 的 ASCII 码值,用于将字母转换为数组索引。
  3. 统计 s 中字符出现次数

    for (const i of s) { resSet[i.charCodeAt() - base]++; }

    遍历字符串 s使用 charCodeAt() 函数获取每个字符的 ASCII 码值,然后根据 base 计算出索引,增加 resSet 中相应位置的计数。

  4. 验证 t 中的字符

    for (const i of t) 
    { if (!resSet[i.charCodeAt() - base]) return false; 
    resSet[i.charCodeAt() - base]--; }
    • 遍历字符串 t,对于每个字符,检查 resSet 中对应位置的计数。如果计数为 0,则表示 t 中有一个在 s 中不存在的字符,或者字符出现次数不匹配,返回 false
    • 减少 resSet 中相应位置的计数。
  5. 返回结果

    return true;

    果代码执行到这里,说明 st 是字母异位词,返回 true

总结

这个函数通过计数每个字符的出现次数,来判断两个字符串是否互为字母异位词。由于只用了一个固定长度的数组,它在处理只包含小写字母的字符串时非常高效。

49字母异位词

示例 1: 输入 ["eat", "tea", "tan", "ate", "nat", "bat"]

  1. 初始化哈希表

    • 创建一个空的 Map 对象 map
  2. 遍历字符串数组

    • 对于每个字符串 str 在数组 ["eat", "tea", "tan", "ate", "nat", "bat"] 中,执行以下步骤:

      • "eat"

        • 分解、排序并重新组合:"eat" -> ["e", "a", "t"] -> ["a", "e", "t"] -> "aet"
        • map.has("aet") 返回 false(因为 "aet" 还不在 map 中),所以执行 map.set("aet", []) 并添加 "eat" 到 "aet" 键对应的数组中。
      • "tea"

        • 同样地,"tea" 排序后变为 "aet"
        • map.has("aet") 返回 true(因为 "aet" 已存在),所以直接将 "tea" 添加到 "aet" 键对应的数组中。
      • "tan"

        • "tan" 排序后变为 "ant"
        • map.has("ant") 返回 false,所以执行 map.set("ant", []) 并添加 "tan" 到 "ant" 键对应的数组中。
      • "ate"

        • "ate" 排序后也是 "aet"
        • 再次将 "ate" 添加到 "aet" 键对应的数组中。
      • "nat"

        • "nat" 排序后变为 "ant"
        • 将 "nat" 添加到 "ant" 键对应的数组中。
      • "bat"

        • "bat" 排序后变为 "abt"
        • map.has("abt") 返回 false,所以执行 map.set("abt", []) 并添加 "bat" 到 "abt" 键对应的数组中。
  3. 提取并返回结果

    • 使用 Array.from(map.values())map 中的所有值(即分组后的字符串数组)转换为一个数组。
    • 返回的数组是:[["eat", "tea", "ate"], ["tan", "nat"], ["bat"]]

结果解释

函数 groupAnagrams 将每个字符串按字母排序后,使用排序结果作为键来分组所有字母异位词。最终返回的数组包含了分组好的字母异位词数组,每个子数组包含所有字符集相同的原始字符串。在这个例子中,"eat"、"tea" 和 "ate" 互为字母异位词,因此它们被分组在一起,同理可得其他分组。

438.找到字符串中所有字母异位词 

  1. 初始化两个计数器数组pCountsCount 分别用于存储 p 和窗口内字符串的字符计数。

  2. 遍历 p:对 p 中的每个字符进行计数。

  3. 滑动窗口:遍历字符串 s,同时更新 sCount 数组来计算窗口内各字符的出现次数。

  4. 窗口大小与 p 相等时:比较 sCountpCount。如果两者完全一致,将左指针的位置加入结果数组。

  5. 移动窗口:右指针每向右移动一次,左指针也相应地向右移动一次,以保持窗口大小不变。

这种方法通过在 s 上滑动一个固定大小的窗口并比较字符出现次数,有效地找出了所有 p 的异位词的起始索引。

 

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

相关文章:

  • 网站建设在哪里招聘长春网站建设q479185700強
  • 小程序制作的公司英语seo什么意思
  • 订单查询网站怎么做成都市温江区建设局网站
  • 网站建设辶金手指排名十二简述企业网站推广的策略
  • 做一个简单的网站多少钱那个公司做app
  • 牡丹江市建设行业协会网站瀑布流网站如何seo
  • 石家庄做网站邮箱电话网站默认极速模式
  • 山西网站建设平台标准网站建设的价格
  • 昆山品牌网站网站图片都是站外连接对seo
  • 删除网站备案与注销新闻稿撰写
  • 医疗电子的网站建设做网站用不用thinkphp
  • 网站页面怎么做的好看宁波网站搭建
  • 分享10个国外优秀的平面设计网站惠州网站建设方案推广
  • 吉 360 网站建设优秀的手机网站标准
  • 网站设置关于我们怎么做最近国际新闻大事20条
  • asp 网站地图生成百度推广培训机构
  • 什么语言做网站最好东莞保安公司电话
  • 深圳网站建设ejaket做那个男女的视频网站
  • 爱玖货源站分答网站
  • 网站设计软件microsoft2013网页制作与网站建设在线作业
  • 类型: 营销型网站建设网站建设现在还有没有市场
  • 2021年给我一个网站精选网页设计
  • 做特卖的网站有哪些简单的网站制作
  • 网站后台管理要求网站建设方案及报价模板
  • 品牌型网站网站建设流程信息
  • 设计师个人网站欣赏 中国热血传奇
  • net大规模网站开发视频猎头公司怎么找客户
  • 资格证网站怎么做查询网站所有关键词排名
  • 开发网站的意义门户网站建设进度
  • 网站平台需要做无形资产吗 怎么做6wordpress 显示微博