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

wordpress 博客 主题西安seo优化培训机构

wordpress 博客 主题,西安seo优化培训机构,奉化seo页面优化外包,将自己做的网站发布到网上题目 给定两个字符串str1和str2#xff0c; str1进行排列组合#xff0c;只要有一个为str2的子串则认为str1是str2的关联子串#xff0c;请返回子串在str2的起始位置#xff0c;若不是关联子串则返回-1。 示例1 输入输出示例仅供调试#xff0c;后台判题数据一般不包含示例…题目 给定两个字符串str1和str2 str1进行排列组合只要有一个为str2的子串则认为str1是str2的关联子串请返回子串在str2的起始位置若不是关联子串则返回-1。 示例1 输入输出示例仅供调试后台判题数据一般不包含示例输入 abc efghicbaili 输出 5 示例2 输入输出示例仅供调试后台判题数据一般不包含 示例输入 abc efghiccaii 输出 -1 思路 题目隐含的条件应该是找到第一个匹配的子串。否则可能有多种解 比如对于输入cbcd adbccdebed。cbcd的排列组合可能有dbccbccd等如果先遍历的bccd那么得到的答案是2如果先遍历dbcc得到的是1。 本题可以从排列组合和滑动窗口两个角度考虑解决 排列组合 组合模板见【JAVA-排列组合】一个套路速解排列组合题。不赘述 找到str1所有的排列情况依次遍历其是否是str2的子串。 滑动窗口 维护一个长度和str1等长的滑动窗口判断窗口内的值是否和str1匹配如果匹配直接输出窗口左边界否则右移滑动窗口 判断窗口内是否和str1匹配每个字符数出现次数相等或者将两者按照同一逻辑排序排序后相等则两者匹配 题解 排列组合解法 package hwod;import java.util.*;public class RelationSubStr {public static void main(String[] args) {Scanner sc new Scanner(System.in);String[] input sc.nextLine().split( );String str1 input[0];String str2 input[1];System.out.println(relationSubStr(str1, str2));}private static ListString res new ArrayList();//存放字符串1所有可能的排列// 暴力解法private static int relationSubStr(String str1, String str2) {char[] chars str1.toCharArray();int[] used new int[str1.length()];dfs(chars, , used);int ans str2.length();for (int i 0; i res.size(); i) {int tmp str2.indexOf(res.get(i));if (tmp ! -1 tmp ans) {ans tmp;}}return ans str2.length() ? -1 : ans;}private static void dfs(char[] chars, String str, int[] used) {if (str.length() chars.length) {res.add(str);}for (int i 0; i chars.length; i) {if (used[i] 1) continue;str chars[i];used[i] 1;dfs(chars, str, used);str str.substring(0, str.length() - 1);used[i] 0;}} } 滑动窗口解法 package hwod;import java.util.*;public class RelationSubStr {public static void main(String[] args) {Scanner sc new Scanner(System.in);String[] input sc.nextLine().split( );String str1 input[0];String str2 input[1];System.out.println(relationSubStr(str1, str2));}//滑动窗口private static int relationSubStr(String str1, String str2) {MapCharacter, Integer map1 new HashMap();MapCharacter, Integer map2 new HashMap();for (int i 0; i str1.length(); i) {map1.put(str1.charAt(i), map1.getOrDefault(str1.charAt(i), 0) 1);}int size str1.length();int k 0;while (k str2.length()) {map2.put(str2.charAt(k), map2.getOrDefault(str2.charAt(k), 0) 1);int i k - size 1;if (i 0) {k;continue;}if (checked(map1, map2)) {return i;}map2.put(str2.charAt(i), map2.getOrDefault(str2.charAt(i), 0) - 1);k;}return -1;}private static boolean checked(MapCharacter, Integer map1, MapCharacter, Integer map2) {for (Character key : map1.keySet()) {if (!map2.containsKey(key)) return false;if (!map1.get(key).equals(map2.get(key))) return false;}return true;} } 推荐 如果你对本系列的其他题目感兴趣可以参考华为OD机试真题及题解JAVA查看当前专栏更新的所有题目。
http://wiki.neutronadmin.com/news/375630/

相关文章:

  • 内蒙古工程建设协会网站企业网站建设版本
  • 清远住房和城乡建设局网站江门市建设银行网站
  • 上海 网站建设 排名可以申请域名的网站
  • 东莞企业网站建设公司网站建设推广代理商
  • 网站模板图网站建设公司需要什么资质
  • cco网站素材网页设计与网站建设作业怎么做
  • 做张家界旅游网站多少钱免费浏览器大全
  • 网站使用说明书模板手机网站建设公司排名
  • 网站建设需要服务器吗技能培训班
  • 南昌seo网站西安app开发
  • 淘宝网站优惠券统一修改怎么做wordpress建好后
  • 购物网站前台功能模块分析网页制作公司深圳
  • 网站建设方案书制作ip做网站域名
  • 企业网站推广的模式创建目录wordpress
  • 做网站不知道做什么内容的企业采购
  • 曲阜网站建设哪些网站可以做代理
  • 银川网站建设哪家好成都营销策划公司
  • 大型网站构建实施方案张家界商城网站建设
  • 佛山当地网站建设公司wordpress 扫码支付
  • 教育类网站框架彩票网站做代理
  • 东莞美容网站建设网站前台建设用到哪些工具
  • 网站开发在线网站的结构设计
  • 自己做一网站 多做宣传.手机如何建网站
  • 动漫做那个视频网站做网站 做好把我踢开
  • 住房城乡建设网站查询平面设计转行做什么比较好
  • 网页制作 公司网站什么网站可以帮人做ppt赚钱
  • 网站的ftp地址是什么深圳平湖网站建设
  • 长沙网站开发培训学校做统计表的网站
  • 网站系统性能定义安卓优化大师下载
  • 北京h5网站建设报价后台更新的内容在网站上不显示