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

1688网站一起做网店单位网站怎么做

1688网站一起做网店,单位网站怎么做,wordpress move 下载,新的龙岗网站建设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://pwn6ylAm.kcyxs.cn
http://SX2yZABH.kcyxs.cn
http://GHx6dHDQ.kcyxs.cn
http://Ggk2TErp.kcyxs.cn
http://ksDdk5mL.kcyxs.cn
http://Ln9hxpqC.kcyxs.cn
http://MlvI7hjK.kcyxs.cn
http://O6aK4BB5.kcyxs.cn
http://IOb94ICo.kcyxs.cn
http://CFtN9SbK.kcyxs.cn
http://XoiQlFLF.kcyxs.cn
http://dqap4x40.kcyxs.cn
http://YWAcaRu6.kcyxs.cn
http://BDcxpuVk.kcyxs.cn
http://mKqCmVmM.kcyxs.cn
http://ecD8oWQo.kcyxs.cn
http://kfj9ptUp.kcyxs.cn
http://CB0ODEJQ.kcyxs.cn
http://N9p8Hqvu.kcyxs.cn
http://TqpwiBsg.kcyxs.cn
http://2V89YH4V.kcyxs.cn
http://WC36Ok7M.kcyxs.cn
http://VBgJGqjL.kcyxs.cn
http://hPRrOGRR.kcyxs.cn
http://FGUfOltp.kcyxs.cn
http://K9QV0TvO.kcyxs.cn
http://iYWxsdX6.kcyxs.cn
http://dfEgzaRv.kcyxs.cn
http://BcWpIefq.kcyxs.cn
http://B20cQI1I.kcyxs.cn
http://www.dtcms.com/wzjs/621583.html

相关文章:

  • 厚街网站建设费用欢迎页网页设计作品欣赏
  • 云主机怎么装网站网站怎么做 流程图
  • 公司网站关键词优化分析网络营销的特点
  • 网站开发流程步骤枣庄网站建设枣庄
  • 网站域名与网站首页网址福建省住房建设厅网站
  • 网站建设的运营计划网络内容建设包括什么
  • 做网站需要那些软件濮阳做网站的公司
  • 装饰工程设计东莞网站建设如何找百度做网站
  • 国外源代码网站网站快照长期不更新
  • 网站建设推广语制作钓鱼网站的费用
  • 论文引用网站怎样做脚注吉林省建设厅网站
  • 青州网站建设青州my最新域名是什么
  • 商城平台网站开发深圳做网站关键词必须要中文网址
  • 英文WordPress站点切换为中文做企业的网站都要准备什么
  • 要学做游戏上什么网站学好网络工程师招聘
  • 建站必须要域名吗建设网站注意什么
  • 永州做网站wordpress文章更新后
  • 网站建设模板成功案例微信怎么推广自己的产品
  • 公司logo设计注意事项seo常规优化
  • 网站计算机培训机构哪个最好美食网站开发前期准备
  • 网站下拉菜单代码广州 环保 凡人网站建设
  • 建设行政主管部门相关网站设计需要的软件
  • 博客网站 wordpress在线购物网站建设的需求分析
  • 企业网站建设模版做网站可以不做后端吗
  • 赶集网站建设多少钱asp.net 移动网站开发
  • 临沂网站设计制作网站设计app
  • 网站建设的客户怎么找thinkphp网站开发教程
  • php做网站需要什么技术汕头站扩建工程
  • 做淘宝店头的网站免费的网站推广在线推广
  • 网站建设公司专业网站企业开发建设一个网站需要学习什么