如何使用java实现最大单词长度乘积
本文将为大家详细介绍“如何使用java实现最大单词长度乘积”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“如何使用java实现最大单词长度乘积”能够给你意想不到的收获,请大家跟着小编的思路慢慢深入,具体内容如下,一起去收获新知识吧。
给定一个字符串数组 words,找到 length(word[i]) * length(word[j]) 的最大值,并且这两个单词不含有公共字母。你可以认为每个单词只包含小写字母。如果不存在这样的两个单词,返回 0。
示例1:
输入: ["abcw","baz","foo","bar","xtfn","abcdef"]输出: 16解释: 这两个单词为 "abcw", "xtfn"。
示例 2:
输入:输出:这两个单词为。
示例 3:
输入:输出:
答案:
1publicstaticintmaxProduct(String[]words){ 2int[]mask=newint[words.length]; 3intresult=0; 4for(inti=0;i<words.length;++i){ 5for(charc:words[i].toCharArray()) 6mask[i]|=1<<(c-'a'); 7for(intj=0;j<i;++j) 8if((mask[i]&mask[j])==0) 9result=Math.max(result,(words[i].length()*words[j].length()));10}11returnresult;12}
解析:
这种解法非常简单,代码也很简洁,这里有个巧妙的地方是把单词用比特位来表示,因为int类型在java语言中是32位,而小写单词只有26个,所以用int位来存储足够了。第8行如果与运输的结果是0,就表示这两个单词没有相同的字母。如果有的话,那么在某一相同的位上肯定都为1,结果肯定不是0,代码很容易理解。
Java可以用来干什么
Java主要应用于:1. web开发;2. Android开发;3. 客户端开发;4. 网页开发;5. 企业级应用开发;6. Java大数据开发;7.游戏开发等。
感谢您能读到这里,小编希望您对“如何使用java实现最大单词长度乘积”这一关键问题有了从实践层面最深刻的体会,具体使用情况还需要大家自己动手实践使用过才能领会,如果想阅读更多相关内容的文章,欢迎关注行业资讯频道!