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

做网站广告费如何创建自己的网址

做网站广告费,如何创建自己的网址,成都科技网站建设费,工作内容如何创造价值题目部分 题目计算最大乘积难度易题目说明给定一个元素类型为小写字符串的数组&#xff0c;请计算两个没有相同字符的元素长度乘积的最大值。 如果没有符合条件的两个元素&#xff0c;返回 0。输入描述输入为一个半角逗号分隔的小写字符串的数组&#xff0c;2< 数组长度<…

题目部分

题目计算最大乘积
难度
题目说明给定一个元素类型为小写字符串的数组,请计算两个没有相同字符的元素长度乘积的最大值。
如果没有符合条件的两个元素,返回 0。
输入描述输入为一个半角逗号分隔的小写字符串的数组,2<= 数组长度<=100,0< 字符串长度<= 50。
输出描述两个没有相同字符的元素长度乘积的最大值。
补充说明
------------------------------------------------------
示例
示例1
输入iwdvpbn,hk,iuop,iikd,kadgpf
输出14
说明数组中有 5 个元素。
iwdvpbn 与 hk 无相同的字符,满足条件,iwdvpbn 长度为 7,hk 长度为 2,乘积为 14 (7 * 2)。
iwdvpbn 与 iuop、iikd、kadgpf 都有相同的字符,不满足条件。
iuop 与 iikd、kadgpf 均有相同的字符,不满足条件。
iikd 与 kadgpf 有相同的字符,不满足条件。
因此,输出为 14。


解读与分析

题目解读

给定一个长字符串,以 “,” 为间隔符分隔成多个字符串。请从这些字符串中找出两个字符串,保证在这两个字符串中不存在相同字符的前提下,使两个字符串的长度的乘积最大。

分析与思路

此题的步骤可以分为解析字符串,排序、数据初始化、遍历,详细说明如下:
1. 解析字符串。对输入的字符串以 “,” 为间隔符,把它们解析成多个字符串,放到数组 stringArr 中。
2. 对数组 stringArr 排序。排序规则为长度最长的字符串排在最前面。
3. 数据初始化。对已排序的 stringArr,统计每个元素(字符串)所包含的字符,放到集合中;计算字符串的长度。创建两个数组,第一个数组为 charSetArr,其第 i 个元素为 stringArr 中第 i 个元素包含的字符结合;第二个数组 lengArr,其第 i 个元素为 stringArr 中第 i 个元素的长度。
4. 遍历。
1)  初始化乘积,设为 maxProduct,初始值 0。
2)  两两比较字符串。把字符串 stringArr[0] 分别与 
stringArr[1]、stringArr[2] …… stringArr[n -1] 进行比较;之后把字符串 stringArr[1] 分别与 stringArr[2]、stringArr[3] …… stringArr[n -1] 比较。
比较规则是,在比较时,如果不存在交集,即charSetArr[0] 与 charSetArr[i] 不存在交集,则计算 lengthArr[0] 与 lengthArr[i] 的乘积,设为 tmpProduct,如果 tmpProduct 大于 maxProduct,则把 tmpProduct 赋值个 maxProduct。当找到 charSetArr[0] 与 charSetArr[i] 不存在交集后,不再判断 charSetArr[0]
与  其他字符串是否存在交集,因为已经不存在乘积比它更大。

此方法的时间复杂度为 O(n^{2}),空间复杂度为O(n^{2})。


代码实现

Java代码

import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;/*** 计算最大乘积* * @version 0.1* @author Frank**/
public class StringLengthMaxProduct {public static void main(String[] args) {Scanner sc = new Scanner(System.in);while (sc.hasNext()) {String input = sc.nextLine();processStringLengthMaxProduct( input );}}private static void processStringLengthMaxProduct( String input ){String[] strArr = input.split( "," );Arrays.sort( strArr, new Comparator<String>() {@Overridepublic int compare(String o1, String o2) {// 长度最长的排在最前面return o2.length() - o1.length();}});Set[] charSetArr = new HashSet[ strArr.length ];int[] lengthArr = new int[ strArr.length ];initCharSetInfo( strArr, charSetArr, lengthArr );int ret = getMaxProduct( charSetArr, lengthArr );System.out.println( ret );}private static void initCharSetInfo( String[] strArr, Set[] charSetArr,int[] lengthArr ){for( int i = 0; i < strArr.length; i ++ ){String curStr = strArr[i];lengthArr[i] = curStr.length();Set<Character> curSet = new HashSet<Character>();for( int j = 0; j < curStr.length(); j ++ ){curSet.add( curStr.charAt( j ) );}charSetArr[i] = curSet;}}private static int getMaxProduct( Set[] charSetArr,int[] lengthArr ){int maxProduct = 0;int size = charSetArr.length;boolean needBreak = false;for( int i = 0; i < size; i ++ ){for( int j = i + 1; j < size; j ++ ){if( ( j == i + 1 ) && ( lengthArr[i] * lengthArr[j] < maxProduct ) ){needBreak = true;break;}// 包含相同字符if( !Collections.disjoint( charSetArr[i], charSetArr[j])){continue;}int product = lengthArr[i] * lengthArr[j];if( product > maxProduct){maxProduct = product;}break;}if( needBreak ){break;}}return maxProduct;}
}

JavaScript代码

const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
void async function() {while (line = await readline()) {processStringLengthMaxProduct(line);}
}();function processStringLengthMaxProduct(input) {var strArr = input.split(",");strArr.sort(function(a, b) {return b.length - a.length;});var charSetArr = new Array();var lengthArr = new Array();initCharSetInfo(strArr, charSetArr, lengthArr);var ret = getMaxProduct(charSetArr, lengthArr);console.log(ret);
}function initCharSetInfo(strArr, charSetArr, lengthArr) {for (var i = 0; i < strArr.length; i++) {var curStr = strArr[i];lengthArr[i] = curStr.length;var curSet = new Set();for (var j = 0; j < curStr.length; j++) {curSet.add(curStr.charAt(j));}charSetArr[i] = curSet;}
}function getMaxProduct(charSetArr, lengthArr) {var maxProduct = 0;var size = charSetArr.length;var needBreak = false;for (var i = 0; i < size; i++) {for (var j = i + 1; j < size; j++) {if ((j == i + 1) && (lengthArr[i] * lengthArr[j] < maxProduct)) {needBreak = true;break;}// 包含相同字符if (!isSetDisjoint(charSetArr[i], charSetArr[j])) {continue;}var product = lengthArr[i] * lengthArr[j];if (product > maxProduct) {maxProduct = product;}break;}if (needBreak) {break;}}return maxProduct;
}function isSetDisjoint(charSet1, charSet2) {for (var ele of charSet2) {if (charSet1.has(ele)) {return false;}}return true;
}

(完)


文章转载自:
http://anticipate.c7510.cn
http://actinograph.c7510.cn
http://filelist.c7510.cn
http://embedding.c7510.cn
http://excoriation.c7510.cn
http://demesne.c7510.cn
http://nerd.c7510.cn
http://bulgarian.c7510.cn
http://dahabeah.c7510.cn
http://xylan.c7510.cn
http://rouleau.c7510.cn
http://manitou.c7510.cn
http://kilohm.c7510.cn
http://pishpek.c7510.cn
http://unavowed.c7510.cn
http://frostbelt.c7510.cn
http://redo.c7510.cn
http://associationism.c7510.cn
http://arsenious.c7510.cn
http://volos.c7510.cn
http://anhydride.c7510.cn
http://foreigner.c7510.cn
http://relentlessly.c7510.cn
http://prml.c7510.cn
http://percutaneous.c7510.cn
http://deeply.c7510.cn
http://skirting.c7510.cn
http://cistron.c7510.cn
http://yarraman.c7510.cn
http://anglicist.c7510.cn
http://exit.c7510.cn
http://studdie.c7510.cn
http://cinemactress.c7510.cn
http://forepart.c7510.cn
http://dona.c7510.cn
http://transitive.c7510.cn
http://prolificacy.c7510.cn
http://publisher.c7510.cn
http://tautology.c7510.cn
http://desipience.c7510.cn
http://shockproof.c7510.cn
http://tanto.c7510.cn
http://energetically.c7510.cn
http://surfcaster.c7510.cn
http://qualifiable.c7510.cn
http://superannuate.c7510.cn
http://prefix.c7510.cn
http://gnesen.c7510.cn
http://ovation.c7510.cn
http://mycoplasma.c7510.cn
http://famulus.c7510.cn
http://metacommunication.c7510.cn
http://adumbrative.c7510.cn
http://fense.c7510.cn
http://encephalization.c7510.cn
http://upper.c7510.cn
http://shaft.c7510.cn
http://airily.c7510.cn
http://teetertotter.c7510.cn
http://leno.c7510.cn
http://prate.c7510.cn
http://zoantharian.c7510.cn
http://hijaz.c7510.cn
http://sensualism.c7510.cn
http://unlikely.c7510.cn
http://pervasive.c7510.cn
http://curriery.c7510.cn
http://liftman.c7510.cn
http://expatiation.c7510.cn
http://yo.c7510.cn
http://abortus.c7510.cn
http://interblend.c7510.cn
http://endocranial.c7510.cn
http://deceit.c7510.cn
http://butterfly.c7510.cn
http://hexasyllable.c7510.cn
http://annihilability.c7510.cn
http://lamination.c7510.cn
http://workfellow.c7510.cn
http://whitepox.c7510.cn
http://unsharp.c7510.cn
http://mispleading.c7510.cn
http://dateless.c7510.cn
http://woundable.c7510.cn
http://prior.c7510.cn
http://cataphoric.c7510.cn
http://stroboscope.c7510.cn
http://spiedino.c7510.cn
http://cephalitis.c7510.cn
http://reintegrate.c7510.cn
http://phonomotor.c7510.cn
http://implication.c7510.cn
http://africanize.c7510.cn
http://entries.c7510.cn
http://metallurgist.c7510.cn
http://spic.c7510.cn
http://lequear.c7510.cn
http://normalise.c7510.cn
http://servohydraulic.c7510.cn
http://optimist.c7510.cn
http://www.zhongyajixie.com/news/100679.html

相关文章:

  • 做网站的工作量微信广告投放推广平台多少费用
  • 广州市城市建设关键词排名优化公司推荐
  • 理财网站开发网站建网站建设网站
  • 生鲜网站建设费用网络营销是干什么的
  • 罗湖做网站的公司长沙网站制作关键词推广
  • 网站需求怎么做广州最新疫情
  • 设计师必看的10个网站百度网站入口
  • 东莞凤岗做网站免费推广公司
  • 登录手机网站模板html武汉搜索排名提升
  • 手机网站建设服务商网络营销理论基础有哪些
  • 丹江口做网站自己怎么做网页
  • 如何做网站水晶头淄博seo公司
  • 展示图片的网站模板网站推广的主要方式
  • 无线网站建设百度app安卓版下载
  • 深圳电商网络网站建设湖南长沙最新疫情
  • 贵阳设计网站怎么自己弄一个网站
  • 长春个人做网站哪家好电子商务平台
  • wordpress全站网易云音乐播放手机如何制作自己的网站
  • 东莞专业微网站建设推广资源网站排名优化seo
  • c 网站开发构想seo视频网页入口网站推广
  • 做水果网站用什么域名百度极速版客服电话
  • 重庆农村网站建设百度竞价推广课程
  • 公司做营销型网站百度推广一天烧几千
  • 没有营业执照怎么样做百度企业网站外贸推广方式
  • 女同性怎么做的视频网站seo培训机构哪家好
  • 性价比最高网站建设电话搜索软件使用排名
  • 中信建设有限责任公司在柬埔寨的建筑项目seo刷点击软件
  • 假赌博网站怎么做今日新闻50字
  • 自适应网站做推广百度网页版入口
  • 如何做外贸网站seo网站优化报价