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

查询网站备案服务商浙江seo外包费用

查询网站备案服务商,浙江seo外包费用,洛阳有没有做家教的网站,江西南昌网站建设招标https://leetcode.cn/problems/is-subsequence/?envTypestudy-plan-v2&envIdtop-interview-150因为是子序列我们只要关心后一个字符在前一个字符后面出现过就行&#xff0c;至于在哪出现出现几次我们不关心&#xff0c;所以我们可以用HashMap<Character, ArrayList<…
https://leetcode.cn/problems/is-subsequence/?envType=study-plan-v2&envId=top-interview-150
因为是子序列我们只要关心后一个字符在前一个字符后面出现过就行,至于在哪出现出现几次我们不关心,所以我们可以用HashMap<Character, ArrayList<Integer>> map;这个数据结构来存每一个字符出现过的位置然后遍历s,找到s中每一个字符在t中出现的位置(并且要在前一个字符的后面第一个,因为list是有序的我们可以通过二分来找),如果没找到则返回false,如果找到了则更新preIndex,继续遍历s,直到遍历完s,返回true.
题目后面那个拓展应该是让我们保留状态,我能想到比较好的方法就是构造字典树了,比如构造长度为i的字符串的字典树(1<i<=n),这样只用拿长度为i的字符串到对于长度的字典树匹配就行字典树匹配的时间是log n,总的时间就是nlog n,但是构造这样一个字典树组很麻烦,暂时只能想到这了。

class Solution {public static void main(String[] args) {String s = "abc";String t = "ahbgdc";System.out.println(new Solution().isSubsequence(s, t));}public boolean isSubsequence(String s, String t) {int len_s = s.length(), len_t = t.length();HashMap<Character, ArrayList<Integer>> map = new HashMap<>();//记录字符出现的位置for(int i = 0; i < len_t; i++) {if(!map.containsKey(t.charAt(i))) {ArrayList<Integer> list = new ArrayList<>();map.put(t.charAt(i), list);}map.get(t.charAt(i)).add(i);}int preIndex = -1, currIndex = 0;//preIndex记录上一个字符出现的位置,currIndex记录当前字符出现的位置int index = 0;//当前在找的字符while(index < len_s) {if(!map.containsKey(s.charAt(index))) {//如果s中出现了t中没有的字符,则直接返回falsereturn false;}currIndex = getCurrIndex(preIndex, map.get(s.charAt(index)));//获取当前字符在t中出现的下一个位置if(currIndex == -1) return false;//没找到else {preIndex = currIndex;//更新preIndex}index++;}return true;}//找当前字符在前一个字符下标后第一次出现的下标public int getCurrIndex(int preIndex, ArrayList<Integer> list) {//通过二分找到一个出现在上一个字符后的待找字符int left = 0, right = list.size() - 1;while(left < right) {int mid = (left + right) >> 1;if(list.get(mid) > preIndex) right = mid;else left = mid + 1;}return list.get(left) > preIndex ? list.get(left) : -1;}
}

http://www.dtcms.com/wzjs/136506.html

相关文章:

  • 企业微商城网站建设江东怎样优化seo
  • 影视网站的设计与实现营销型网站一般有哪些内容
  • 网站建设百强企业新航道培训机构怎么样
  • 为什么要用模板建站?你就知道
  • 做外贸的网站主要有哪些指数函数求导公式
  • 做修图网站电脑配置泉州关键词搜索排名
  • phpweb网站合肥疫情最新消息
  • wordpress会员可看网站优化seo是什么
  • 广州正佳广场在哪个区黑帽seo培训大神
  • 内蒙做网站成品app直播源码有什么用
  • wordpress帮助手册seo入门课程
  • 做网站和c 哪个好网上营销网站
  • 长沙装修公司口碑哪家好上海有什么seo公司
  • 网站建设推广优化招聘模板seo关键技术有哪些
  • umu互动平台武汉整站优化
  • designer怎么做网站最火网站排名
  • 广州市网站建设科技平台推广引流
  • 网站建设的公司系统规划方案seo外包公司专家
  • 做网站要什么软件网络seo哈尔滨
  • 深圳网站优化排名东莞做网站排名优化推广
  • 广州高端网站建设seo发贴软件
  • 网站建设博采京津冀协同发展
  • wordpress分库技术seo建设招商
  • 烟台住房和城乡建设局网站济南网络优化厂家
  • 加强网站硬件建设方案新闻头条今日要闻最新
  • 哪些网站是discuz做品牌策略有哪些
  • 怎么把百度放到网站上网页设计页面
  • 网站免费主机申请全球搜索引擎
  • .net简单网站开发视频教程seo团队管理系统
  • 漳州做网站公司seo工资多少