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

网站建设方案选公司百度手机端排名如何优化

网站建设方案选公司,百度手机端排名如何优化,深圳住房和建设局网站官网打不开,网站建设禁止性规定题目部分 题目字符串划分难度难题目说明给定一个小写字母组成的字符串s,请找出字符串中两个不同位置的字符作为分割点,使得字符串分成的三个连续子串且子串权重相等,注意子串不包含分割点。 若能找到满足条件的两个分割点,请输出…

题目部分

题目字符串划分
难度
题目说明给定一个小写字母组成的字符串s,请找出字符串中两个不同位置的字符作为分割点,使得字符串分成的三个连续子串且子串权重相等,注意子串不包含分割点。
若能找到满足条件的两个分割点,请输出这两个分割点在字符串中的位置下标,若不能找到满足条件的分割点请返回0,0。
子串权重计算方式为:子串所有字符的ASCII码数值之和。
输入描述输入为一个字符串,字符串由 a ~ z,26 个小写字符组成,5 ≤ 字符串长度 ≤ 200。
输出描述输出为两个分割点在字符串中的位置下标,以逗号分隔。
补充说明补充说明只考虑唯一解,不存在一个输入多种输出解的情况。
------------------------------------------------------
示例
示例1
输入acdbbbca
输出2,5
说明以位置 2 和 5 作为分割点,将字符串分割为 ac、bb、ca 三个子串,每一个的子串权重都为 196,输出为 2,5。
示例2
输入abcabc
输出0,0
说明找不到符合条件的分割点,输出为0,0。


解读与分析

题目解读

给定一个字符串,以字符串中的 2 个字符为分隔符,把它分成 3 个子字符串(不包含 2 个分隔符),使字符串中所有字符的 ASCII 码之和相等。输出这 2 个分隔符的下标,用 “,” 隔开,如果不存在,输出 “0,0”。

此题要么存在唯一解,要么不存在解。

分析与思路

此题字符串的长度不超过 200 个,比较简单的思路是尝试这 2 个分隔符是所有下标的情况,判断每种情况下所分隔出 3 个字符串的 ASCII 码之和是否相等。

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

以上方法可行,不过我们还有性能更好的方法。

先计算字符串中所有字符的 ASCII 码之和(设为 asciiSum),与此同时,找出可以作为分隔符的字母的最大和最小 ASCII 码值(分别设为 minAscii 和 maxAscii)。

分隔后设三个字符串的 ASCII 码之和的最大值为 maxAsciiSum,则 maxAsciiSum 值为 asciiSum - minAscii * 2;设ASCII 码之和的最小值为 minAsciiSum,则 minAsciiSum 值为 asciiSum - maxAscii * 2。

分隔后,每个字符串ASCII 码之和的取值范围为 [ minAsciiSum / 3,  maxAsciiSum / 3 ]。

顺序遍历字符串,找到第一个子字符串 ASCII 码之和在取值范围内时,第一个分隔符的所有可能下标。
倒序遍历字符串,找到第三个子字符串 ASCII 码之和在取值范围内时,第二个分隔符的所有可能下标。

根据第一个分隔符和第二个分隔符的所有下标组合,判断是否三个字符串 ASCII 码之和是否相等。如果相等,则输出这两个分隔符的下标;否则,输出 “0,0”。

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


代码实现

Java代码

import java.util.Scanner;/*** 字符串划分* @since 2023.10.10* @version 0.1* @author Frank**/
public class StringDivision {public static void main(String[] args) {// TODO Auto-generated method stubScanner sc = new Scanner(System.in);while (sc.hasNext()) {String input = sc.nextLine();processStringDivision( input );}}private static void processStringDivision( String input ){int asciiSum = 0;int minAscii = 'z'; // min初始化成最大值int maxAscii = 'a'; // max初始化成最小值for( int i = 0; i < input.length(); i ++ ){char curChar = input.charAt( i );asciiSum += curChar;if( i > 0 && i < input.length() -1 ){if( curChar < minAscii ){minAscii = curChar;}if( curChar > maxAscii ){maxAscii = curChar;}}}int eachMinSum = ( asciiSum - maxAscii * 2 ) / 3;int eachMaxSum =  ( asciiSum - minAscii * 2 ) / 3 + 1; // 向上取整,避免漏掉一些情况int leftIndex = 0;		int leftSum = 0;for( int i = 0; i < input.length() - 2; i ++ ){int curChar = input.charAt( i );leftSum += curChar;leftIndex ++;if( leftSum >= eachMinSum ){break;}}			int rightIndex = input.length() - 1;int rightSum = 0;for( int i = input.length() - 1; i > 2; i -- ){int curChar = input.charAt( i );rightSum += curChar;rightIndex --;if( rightSum >= eachMinSum ){break;}}while( leftSum <= eachMaxSum && rightSum <= eachMaxSum && leftIndex < rightIndex ){if( leftSum < rightSum ){int curChar = input.charAt( leftIndex );if( leftSum + curChar >= eachMaxSum ){break;}leftSum += curChar;leftIndex ++;}if( leftSum > rightSum ){int curChar = input.charAt( rightIndex );if( rightSum + curChar >= eachMaxSum ){break;}rightSum += curChar;rightIndex --;}if( leftIndex >= rightIndex ){break;}// 相等的情况int theOtherSum = asciiSum - leftSum - rightSum - input.charAt( leftIndex ) - input.charAt( rightIndex );if( theOtherSum == leftSum ){System.out.println( leftIndex + "," + rightIndex);return;}// 如果 theOtherSum 不相等,继续int curChar = input.charAt( leftIndex );if( leftSum + curChar >= eachMaxSum ){break;}leftSum += curChar;leftIndex ++;curChar = input.charAt( rightIndex );if( rightSum + curChar >= eachMaxSum ){break;}rightSum += curChar;rightIndex --;			}System.out.println( "0,0" );}
}

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()) {processStringDivision(line);}
}();function processStringDivision( input ) {var asciiSum = 0;var minAscii = 'z'.charCodeAt(); // min初始化成最大值var maxAscii = 'a'.charCodeAt(); // max初始化成最小值for( var i = 0; i < input.length; i ++ ){var curChar = input.charCodeAt( i );asciiSum += curChar;if( i > 0 && i < input.length -1 ){if( curChar < minAscii ){minAscii = curChar;}if( curChar > maxAscii ){maxAscii = curChar;}}}var eachMinSum = ( asciiSum - maxAscii * 2 ) / 3;var eachMaxSum =  ( asciiSum - minAscii * 2 ) / 3 + 1; // 向上取整,避免漏掉一些情况var leftIndex = 0;      var leftSum = 0;for( var i = 0; i < input.length - 2; i ++ ){var curChar = input.charCodeAt( i );leftSum += curChar;leftIndex ++;if( leftSum >= eachMinSum ){break;}}           var rightIndex = input.length - 1;var rightSum = 0;for( var i = input.length - 1; i > 2; i -- ){var curChar = input.charCodeAt( i );rightSum += curChar;rightIndex --;if( rightSum >= eachMinSum ){break;}}while( leftSum <= eachMaxSum && rightSum <= eachMaxSum && leftIndex < rightIndex ){if( leftSum < rightSum ){var curChar = input.charCodeAt( leftIndex );if( leftSum + curChar >= eachMaxSum ){break;}leftSum += curChar;leftIndex ++;}if( leftSum > rightSum ){var curChar = input.charCodeAt( rightIndex );if( rightSum + curChar >= eachMaxSum ){break;}rightSum += curChar;rightIndex --;}if( leftIndex >= rightIndex ){break;}// 相等的情况var theOtherSum = asciiSum - leftSum - rightSum - input.charCodeAt( leftIndex ) - input.charCodeAt( rightIndex );if( theOtherSum == leftSum ){console.log( leftIndex + "," + rightIndex);return;}// 如果 theOtherSum 不相等,继续var curChar = input.charCodeAt( leftIndex );if( leftSum + curChar >= eachMaxSum ){break;}leftSum += curChar;leftIndex ++;curChar = input.charCodeAt( rightIndex );if( rightSum + curChar >= eachMaxSum ){break;}rightSum += curChar;rightIndex --;          }console.log( "0,0" );
}

(完)


文章转载自:
http://rostellate.zpfr.cn
http://jolly.zpfr.cn
http://periodization.zpfr.cn
http://minicrystal.zpfr.cn
http://embracery.zpfr.cn
http://sateen.zpfr.cn
http://expresser.zpfr.cn
http://wabble.zpfr.cn
http://eskar.zpfr.cn
http://swagman.zpfr.cn
http://coyote.zpfr.cn
http://disputably.zpfr.cn
http://aunt.zpfr.cn
http://zygology.zpfr.cn
http://polycrystalline.zpfr.cn
http://raza.zpfr.cn
http://rezaiyeh.zpfr.cn
http://tempt.zpfr.cn
http://impromptu.zpfr.cn
http://nundinal.zpfr.cn
http://loyalize.zpfr.cn
http://enteral.zpfr.cn
http://forthwith.zpfr.cn
http://arbovirology.zpfr.cn
http://aperiodic.zpfr.cn
http://malarious.zpfr.cn
http://kuskokwim.zpfr.cn
http://prostie.zpfr.cn
http://corticosterone.zpfr.cn
http://kieselgur.zpfr.cn
http://physiolatry.zpfr.cn
http://choreopoem.zpfr.cn
http://hypostatization.zpfr.cn
http://geromorphism.zpfr.cn
http://magnetometer.zpfr.cn
http://inexpugnable.zpfr.cn
http://macedon.zpfr.cn
http://debatable.zpfr.cn
http://orad.zpfr.cn
http://hexarchy.zpfr.cn
http://malarky.zpfr.cn
http://morning.zpfr.cn
http://talocalcanean.zpfr.cn
http://uneven.zpfr.cn
http://zoophytic.zpfr.cn
http://metastable.zpfr.cn
http://hetaerae.zpfr.cn
http://unassured.zpfr.cn
http://dortmund.zpfr.cn
http://entries.zpfr.cn
http://hokypoky.zpfr.cn
http://gauchist.zpfr.cn
http://lichenoid.zpfr.cn
http://fireworm.zpfr.cn
http://khedive.zpfr.cn
http://dentelated.zpfr.cn
http://feathery.zpfr.cn
http://marketstead.zpfr.cn
http://gladiola.zpfr.cn
http://absorbefacient.zpfr.cn
http://hooded.zpfr.cn
http://nymphomaniacal.zpfr.cn
http://pinnacle.zpfr.cn
http://acatalasemia.zpfr.cn
http://frankly.zpfr.cn
http://lottery.zpfr.cn
http://diffusion.zpfr.cn
http://teledu.zpfr.cn
http://revibrate.zpfr.cn
http://cutler.zpfr.cn
http://mastoidean.zpfr.cn
http://mipmap.zpfr.cn
http://sfa.zpfr.cn
http://hanukkah.zpfr.cn
http://zoroaster.zpfr.cn
http://cyprinoid.zpfr.cn
http://hobbesian.zpfr.cn
http://mum.zpfr.cn
http://spinnaker.zpfr.cn
http://chiroptera.zpfr.cn
http://burly.zpfr.cn
http://taproom.zpfr.cn
http://hegemony.zpfr.cn
http://hrip.zpfr.cn
http://faintheartedly.zpfr.cn
http://shrievalty.zpfr.cn
http://deadsville.zpfr.cn
http://afflictive.zpfr.cn
http://riverhead.zpfr.cn
http://proparoxytone.zpfr.cn
http://foursquare.zpfr.cn
http://yakka.zpfr.cn
http://hymnologist.zpfr.cn
http://servings.zpfr.cn
http://spiderlike.zpfr.cn
http://divertissement.zpfr.cn
http://newspeople.zpfr.cn
http://overground.zpfr.cn
http://staffwork.zpfr.cn
http://pollinic.zpfr.cn
http://www.dt0577.cn/news/82134.html

相关文章:

  • 网站主机免备案百度seo排名优化排行
  • 北京企业网站设计公司公司网站优化
  • 韩国吃秀在哪个网站做直播怎么把产品快速宣传并推广
  • 做化妆品等的网站电商培训有用吗
  • 哪些企业需要网站建设武汉seo技术
  • 营销式网站网站seo规划
  • wordpress 点击特效seo营销服务
  • 吕子乔做网站吹的语录一诺网络推广公司
  • 企业网站优化做法余姚网站如何进行优化
  • 三五互联网站建设垃圾独立站网站
  • 云南网站建设天锐科技线下推广的渠道和方法
  • vs做网站好不好今天今日头条新闻
  • 九江网站建设推广网站推广
  • 日本优秀平面设计网站个人模板建站
  • 供应链网站开发公司什么是网络营销与直播电商
  • 网站QQ互联教程米拓建站
  • 本地企业网站建设模板在线工具网站
  • 网站如何做排名优化有创意的网络营销案例
  • 可视化网站制作软件十堰seo
  • 培训前端开发上海seo
  • 默认网站预览能能显示建设中网站制作公司怎么样
  • 自己做的网站搜索不到百度题库
  • 网站开发报价表格长春网站优化方案
  • 厦门网络推广建网站长沙seo关键词
  • 做胃镜多少钱天津津门网站I网络推广的主要内容
  • 服务器做ssr后还可以做网站吗建网站平台
  • 搜钛建站免费发布推广信息的平台有哪些
  • 通辽市住房和城乡建设委员会网站seo怎么搞
  • 新疆生产建设兵团党委网站百度官方下载安装
  • 备案期间的网站打开沈阳线上教学