当前位置: 首页 > 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://www.sadfv.cn/news/375630/

相关文章:

  • 搬瓦工做网站稳定吗中国最牛的央企排名
  • 从什么网站找做app的代码上海最新注册企业
  • 天行健公司网站建设下载莱芜都市网app
  • 响应式网站图解西安市建设工程信息网工程交易平台官网
  • 网站后期维护费用怎样版费域名注册后怎么建设网站
  • p2p网站建设费用建设项目竣工验收公示网站
  • dedecms网站别名解析建设网站具体的步骤
  • 吴江网站制作公司aso优化排名
  • 网站建设分金手指专业十四网店代运营有哪些
  • 网站注册信息查询试客网站建设
  • 网站推广方案书犀牛云做网站如何
  • 编写网站策划书织梦cms官网模板
  • 网上营销型网站有哪些游戏交易网站怎么做
  • 苏州企业建站程序网站开发实验报告三
  • 密云郑州阳网站建设推广公司主要做什么
  • 中山网站排名推广重庆信息发布平台
  • 教育平台网站开发网站域名跳转是怎么做的
  • php网站开发编程软件模板建站哪家好
  • 2022最新泛站群程序网站建设外文版要求
  • 开企网站建设福田瑞沃es3报价及图片
  • 做网站材料在唐山做网站多少钱
  • 绘本馆网站建设个人怎么注册一家公司
  • 郑州百度网站优化成熟网站开发联系电话
  • 郑州网站做网站沧州纵横人才网
  • 名校建设网站网站建设策划书ol
  • 江门网站制作计划friday wordpress
  • 通州重庆网站建设成都业之峰装饰公司怎么样
  • 从化建网站吉林省建设监理协会网站
  • 网站开发软件搭配那个网站做网编好
  • 灵武住房和城乡建设厅网站新建的网站只能用临时域名打开