O(1)时间复杂度通过位运算来判断两字符串是否有公共字符方法

编程入门 行业动态 更新时间:2024-10-25 22:37:17

O(1)时间<a href=https://www.elefans.com/category/jswz/34/1767520.html style=复杂度通过位运算来判断两字符串是否有公共字符方法"/>

O(1)时间复杂度通过位运算来判断两字符串是否有公共字符方法

判断两个字符串是否有公共字符暴力做法需要O(n^2),而通过位运算优化,可以节省不少时间复杂度。

以小写26字母为例,判断两个字符串是否存在公共字符。

使用位运算,创建一个长度为2的数组,每个位置的长度为26,前缀补0,如果当前字符串某个字母存在,则该字母的位置上为1.比较两个字符串所创建的数组,做与运算,结果为1则存在相同字符,否则不存在。

最大单词长度乘积 

class Solution {public int maxProduct(String[] words) {long maxv = 0;int marks[] = new int[words.length];for (int i = 0; i < words.length; i++) {String word = words[i];for (int j = 0; j < word.length(); j++) {marks[i] |= 1 << (word.charAt(j) - '0');}}for (int i = 0; i < words.length; i++) {for (int j = i + 1; j < words.length; j++) {if ((marks[i] & marks[j]) == 0) {maxv = Math.max(maxv, words[i].length() * words[j].length());}}}return (int) maxv;}
}

更多推荐

O(1)时间复杂度通过位运算来判断两字符串是否有公共字符方法

本文发布于:2023-11-16 08:10:12,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1614602.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:复杂度   字符串   字符   时间   方法

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!