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

武汉网站建设多少钱免费自媒体网站

武汉网站建设多少钱,免费自媒体网站,深圳制作网站哪家好,丫丫影院“找到字符串中所有字母异位词”的难度为Medium,看一下题目: 给定一个字符串 S 和一个非空字符串 T,找到 S 中所有是 T 的字母异位词的子串,返回这些子串的起始索引。 所谓的字母异位词,其实就是全排列,原题…

         “找到字符串中所有字母异位词”的难度为Medium,看一下题目:

        给定一个字符串 S 和一个非空字符串 T,找到 S 中所有是 T 的字母异位词的子串,返回这些子串的起始索引。

        所谓的字母异位词,其实就是全排列,原题目相当于让你找 S 中所有 T 的排列,并返回它们

的起始索引。

        比如输入 S = "cbaebabacd",T = "abc",算法返回 [0,6],因为 S 中有两个子串 "cba" 和 "bac" 是 T 的排列,它们的起始索引是0和6。

        直接套模板(看专栏)写代码:

package SlidingWindow;import java.util.*;// leetcode 015 找到字符串中所有字母异位词
public class FHW {public List<Integer> findAnagrams(String s, String p) {Map<Character, Integer> need = new HashMap<>(); // 记录p中字符出现次数Map<Character, Integer> window = new HashMap<>(); // 记录窗口中的相应字符的出现次数for (int i = 0; i < p.length(); i++) {char key = p.charAt(i);need.put(key, need.getOrDefault(key, 0) + 1);}int left = 0, right = 0, valid = 0; // valid 表示窗口中满足 need 条件的字符个数List<Integer> res = new ArrayList<>();while (right < s.length()) {// c 是将要移入窗口的字符char c = s.charAt(right);// 右移窗口right++;// 进行窗口内数据的一系列更新if (need.containsKey(c)) {window.put(c, window.getOrDefault(c, 0) + 1);if (window.getOrDefault(c, 0).equals(need.getOrDefault(c, 0))) { // window[c] == need[c]valid++;}}/*** debug 输出的位置***/System.out.println("window:(" + left + ", " + right + ")");/*********************/// 判断左侧窗口是否要收缩while (right - left >= p.length()) { // window need shrink —窗口需要收缩// 当窗口符合条件时,把起始索引加入 resif (valid == need.size()) {res.add(left);}// d 是将要移出窗口的字符char d = s.charAt(left);// 左移窗口left++;// 进行窗口内数据的一系列更新if (need.containsKey(d)) {if (window.getOrDefault(d, 0).equals(need.getOrDefault(d, 0))) {valid--;}window.put(d, window.getOrDefault(d, 0) - 1);}}return res;}public static void main(String[] args) {FHW fhw = new FHW();List<Integer> list = fhw.findAnagrams("abab","ab");System.out.println(list);}}

        和寻找字符串的排列一样,只是找到一个合法异位词(排列)之后将起始索引加入 res 即可。

http://www.yidumall.com/news/42667.html

相关文章:

  • 舜元建设集团官方网站推广代理公司
  • 社交网站建站网店如何推广
  • 网站建设公司订购小程序设计
  • 青岛做网站费用全是广告的网站
  • 锦州建设信息网站关键词排名规则
  • 人人车网站建设seo是什么
  • 网站建设的总体设计思想有没有帮忙推广的平台
  • 宝石汇网站成人职业技能培训班
  • 网页与网站设计实验报告最新国际新闻头条今日国际大事件
  • 网站开发用什么软件优秀网站
  • 网站开发后需要交接哪些材料南宁优化网站收费
  • 网站设计项目收录网
  • 公主坟网站建设灰色关键词排名收录
  • 我也来做外国网站购物百度指数平台
  • 门户网站的传播特点seo在线教程
  • 做网站和app多少费用北京网络营销推广
  • 个人网站建设的背景seo高级优化技巧
  • 网站开发项目终止协议书企业seo优化
  • 装修案例分享的文案东莞seo建站公司
  • 足球网站开发公司做网络推广哪个网站好
  • 深圳国内网站制作哪家快凤凰军事新闻最新消息
  • wordpress 加密文章潍坊seo推广
  • 做移动端网站软件开发唐山网站建设方案优化
  • 什么网站做贸易好制作网站平台
  • 怎么创建文档免费seo排名网站
  • 兼职网站建设策划书seo搜索引擎优化简历
  • 英文阿里巴巴网站建设win10必做的优化
  • 网站制作公司服务小程序推广赚佣金平台
  • 去成都旅游攻略宁波正规站内优化seo
  • 做网上贸易哪个网站好杭州网站优化效果