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

北京网站建设亿玛酷适合5手机项目工作室

北京网站建设亿玛酷适合5,手机项目工作室,wordpress字体设置,页面设计免费交换字符使得字符串相同 题目描述 有两个长度相同的字符串 s1 和 s2#xff0c;且它们其中 只含有 字符 “x” 和 “y”#xff0c;你需要通过「交换字符」的方式使这两个字符串相同。 每次「交换字符」的时候#xff0c;你都可以在两个字符串中各选一个字符进行交换。 …交换字符使得字符串相同 题目描述 有两个长度相同的字符串 s1 和 s2且它们其中 只含有 字符 “x” 和 “y”你需要通过「交换字符」的方式使这两个字符串相同。 每次「交换字符」的时候你都可以在两个字符串中各选一个字符进行交换。 交换只能发生在两个不同的字符串之间绝对不能发生在同一个字符串内部。也就是说我们可以交换 s1[i] 和 s2[j]但不能交换 s1[i] 和 s1[j]。 最后请你返回使 s1 和 s2 相同的最小交换次数如果没有方法能够使得这两个字符串相同则返回 -1 。 样例 样例输入 s1 “xx”, s2 “yy” s1 “xy”, s2 “yx” s1 “xx”, s2 “xy” s1 “xxyyxyxyxx”, s2 “xyyxyxxxyx” 样例输出 1 解释 交换 s1[0] 和 s2[1]得到 s1 “yx”s2 “yx”。 2 解释 交换 s1[0] 和 s2[0]得到 s1 “yy”s2 “xx” 。 交换 s1[0] 和 s2[1]得到 s1 “xy”s2 “xy” 。 注意你不能交换 s1[0] 和 s1[1] 使得 s1 变成 “yx”因为我们只能交换属于两个不同字符串的字符。 -1 4 提示 1 s1.length, s2.length 1000s1, s2 只包含 ‘x’ 或 ‘y’。 思路 先给x,y计数如果x的数量或者y的数量不能整除2那么可直接返回-1。 然后后面的结论就是把玩数据而推出来的结论因为要使s1[i]与s2[i]相等就不需要改变进行转变就会相等那么就只有s1[i] x 且 s2[i] y后面简称为xy || s1[i] y 且 s2[i] x后面简称为yx的情况。又通过把玩数据可知xy与xy消除只需要一次交换yx与yx同理而xy与yx消除需要两次交换。 贪心的想能使相同的两种类型交换就尽可能的两种相同类型进行交换。 代码实现 class Solution {public int minimumSwap(String s1, String s2) {int n s1.length();int c1 0, c2 0;int top 0, bottom 0;for(int i 0; i n; i){c1 (s1.charAt(i) x ? 1 : 0) (s2.charAt(i) x ? 1: 0);c2 (s1.charAt(i) y ? 1 : 0) (s2.charAt(i) y ? 1: 0);if(s1.charAt(i) ! s2.charAt(i)){if(s1.charAt(i) x) top;else bottom;}}if(c1 % 2 ! 0 || c2 % 2 ! 0) return -1;int ans 0;ans top / 2;ans bottom / 2;top % 2;bottom % 2;if(top 1 bottom 1) ans 2;return ans;} }单词搜索 II 题目描述 给定一个 m x n 二维字符网格 board 和一个单词字符串列表 words 返回所有二维网格上的单词 。 单词必须按照字母顺序通过 相邻的单元格 内的字母构成其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母在一个单词中不允许被重复使用。 样例 样例输入 board [[“o”,“a”,“a”,“n”],[“e”,“t”,“a”,“e”],[“i”,“h”,“k”,“r”],[“i”,“f”,“l”,“v”]], words [“oath”,“pea”,“eat”,“rain”] board [[“a”,“b”],[“c”,“d”]], words [“abcb”] 样例输出 [“eat”,“oath”] [] 提示 m board.lengthn board[i].length1 m, n 12board[i][j] 是一个小写英文字母1words.length3∗1041 words.length 3 * 10^41words.length3∗1041 words[i].length 10words[i] 由小写英文字母组成words 中的所有字符串互不相同 思路 矩阵范围很小可直接上暴力回溯能过。但现在还是学习更优的加法才好。因为是字符串的检索可使用字典树进行优化。 代码实现 回溯 class Solution {int m, n;HashSetString set new HashSet();ListString ans new ArrayList();char[][] board;boolean[][] vis new boolean[15][15];int[][] dir {{0, -1}, {0, 1}, {-1, 0}, {1, 0}};public ListString findWords(char[][] board, String[] words) {m board.length;n board[0].length;this.board board;for(String w : words) set.add(w);StringBuilder sb new StringBuilder();for(int i 0; i m; i){for(int j 0; j n; j){vis[i][j] true;sb.append(board[i][j]);dfs(i, j, sb);sb.deleteCharAt(sb.length()-1);vis[i][j] false;}}return ans;}private void dfs(int i, int j, StringBuilder sb){if(sb.length() 10) return ;if(set.contains(sb.toString())){ans.add(sb.toString());set.remove(sb.toString());}for(var d : dir){int x d[0] i, y d[1] j;if(x 0 || x m || y 0 || y n || vis[x][y]) continue;vis[x][y] true;sb.append(board[x][y]);dfs(x, y, sb);sb.deleteCharAt(sb.length() - 1);vis[x][y] false;}} }字典树优化 class Solution {class TreeNode{String s;TreeNode[] next new TreeNode[26]; }void insert(String s){TreeNode p root;for(int i 0; i s.length(); i){int u s.charAt(i) - a;if(p.next[u] null) p.next[u] new TreeNode();p p.next[u]; }p.s s;}int m, n;HashSetString set new HashSet();TreeNode root new TreeNode();char[][] board;int[][] dir {{0, -1}, {0, 1}, {-1, 0}, {1, 0}};boolean[][] vis new boolean[15][15];public ListString findWords(char[][] board, String[] words) {m board.length;n board[0].length;this.board board;for(String w : words) insert(w);StringBuilder sb new StringBuilder();for(int i 0; i m; i){for(int j 0; j n; j){int u board[i][j] - a;if(root.next[u] ! null){vis[i][j] true;dfs(i, j, root.next[u]);vis[i][j] false;}}}ListString ans new ArrayList();for(var s : set) ans.add(s);return ans;}private void dfs(int i, int j, TreeNode node){if(node.s ! null) set.add(node.s);for(var d : dir){int x d[0] i, y d[1] j;if(x 0 || x m || y 0 || y n || vis[x][y]) continue;int u board[x][y] - a;if(node.next[u] ! null){vis[x][y] true;dfs(x, y, node.next[u]);vis[x][y] false;}}} }
http://www.hkea.cn/news/14584684/

相关文章:

  • 宁夏建设厅官方网站重庆品牌网站建设
  • 学校网站建设方案及报价高端的镇江网站建设
  • 做网站是互联网开发吗施工企业资质证书封皮
  • 系列图标设计网站推荐自己做团购网站怎么样
  • 聊城开发网站建设如何用服务器做网站
  • 新网站怎么做谷歌推广呢网站建设艾瑞市场分析
  • 苏州网站设计服务合肥建设干部学校网站首页
  • 低价机票网站建设怎么做黑客把网站余额更改
  • 网站域名asia是seo必备软件
  • 育儿哪个网站做的好住房和城乡建设部网站加装电梯
  • 一个虚拟主机能安装2个网站吗网站建设公司哪家专业
  • 硅云网站建设视频怎么自己做微信推送新闻
  • 高唐企业做网站推广厦门淘宝网站设计公司
  • 公司网站免费注册潍坊网络推广网站建设
  • 关于网站建设投稿上海品质网站建设
  • 东营招标信息网移动网站怎么做优化
  • h5模板网站模板用什么软件可以做网站动态
  • 做网站一月工资西安网站设计招聘
  • 成都做一个中小企业网站需要多少钱济南网站建设兼职
  • 网站开发和网页制作兰州seo快速排名
  • 秦皇岛市网站制作公司网站没有备案可以做seo优化吗
  • 哪个网站可以给图片做链接芜湖做网站推广有哪些公司
  • discuz怎么做网站网站通栏图片代码
  • wordpress 资讯站温州建设集团有限公司网站
  • 网站防止非法链接怎么做昆山企业网站建设
  • 想学做网站要去哪里学百姓网为什么不能创建地址
  • 青岛知名网站建设多少钱邯郸信息港二手车出售
  • 金华网站建设公司哪家好专业集团网站建设
  • 做网站挣钱来个好心人指点一下呗当地信息网站建设资质
  • 西宁专业网站建设公司游戏设计师网站