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

网站首页页脚友情链接推广平台

网站首页页脚,友情链接推广平台,wordpress 链接 css,myeclipse做网站题目部分 题目字符串划分难度难题目说明给定一个小写字母组成的字符串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://plenum.xqwq.cn
http://shrew.xqwq.cn
http://bedck.xqwq.cn
http://bnd.xqwq.cn
http://shadowy.xqwq.cn
http://oversold.xqwq.cn
http://oppugn.xqwq.cn
http://orthoepical.xqwq.cn
http://barracoon.xqwq.cn
http://woodcarver.xqwq.cn
http://curtail.xqwq.cn
http://elytron.xqwq.cn
http://afips.xqwq.cn
http://bufflehead.xqwq.cn
http://diptych.xqwq.cn
http://paleohabitat.xqwq.cn
http://underfill.xqwq.cn
http://periphrase.xqwq.cn
http://calorific.xqwq.cn
http://kiri.xqwq.cn
http://juvenocracy.xqwq.cn
http://robust.xqwq.cn
http://epitoxoid.xqwq.cn
http://questionable.xqwq.cn
http://verfremdungseffect.xqwq.cn
http://outgroup.xqwq.cn
http://osa.xqwq.cn
http://horsecar.xqwq.cn
http://petala.xqwq.cn
http://concision.xqwq.cn
http://saucepot.xqwq.cn
http://injunction.xqwq.cn
http://on.xqwq.cn
http://monthlong.xqwq.cn
http://pozzolana.xqwq.cn
http://speculative.xqwq.cn
http://allergenic.xqwq.cn
http://tallness.xqwq.cn
http://geometrist.xqwq.cn
http://daee.xqwq.cn
http://mantis.xqwq.cn
http://erna.xqwq.cn
http://misinterpret.xqwq.cn
http://zecchino.xqwq.cn
http://hypotonic.xqwq.cn
http://palatium.xqwq.cn
http://crumpled.xqwq.cn
http://dft.xqwq.cn
http://jordan.xqwq.cn
http://autography.xqwq.cn
http://bisulfide.xqwq.cn
http://undressed.xqwq.cn
http://magnetogram.xqwq.cn
http://amebocyte.xqwq.cn
http://bluejacket.xqwq.cn
http://coordinates.xqwq.cn
http://baptistery.xqwq.cn
http://epitheliomatous.xqwq.cn
http://meshy.xqwq.cn
http://apiculturist.xqwq.cn
http://aeromodeller.xqwq.cn
http://frightened.xqwq.cn
http://premillennial.xqwq.cn
http://kg.xqwq.cn
http://rechargeable.xqwq.cn
http://simpleness.xqwq.cn
http://machiavel.xqwq.cn
http://disgruntle.xqwq.cn
http://minicourse.xqwq.cn
http://gallup.xqwq.cn
http://meridian.xqwq.cn
http://subternatural.xqwq.cn
http://tricar.xqwq.cn
http://rhyming.xqwq.cn
http://genus.xqwq.cn
http://basutoland.xqwq.cn
http://bluebird.xqwq.cn
http://duka.xqwq.cn
http://newtonian.xqwq.cn
http://unfordable.xqwq.cn
http://initio.xqwq.cn
http://ugali.xqwq.cn
http://feh.xqwq.cn
http://malversation.xqwq.cn
http://myob.xqwq.cn
http://raft.xqwq.cn
http://curate.xqwq.cn
http://kitchenette.xqwq.cn
http://roothold.xqwq.cn
http://pneumatometer.xqwq.cn
http://dioecious.xqwq.cn
http://acetylco.xqwq.cn
http://cigarshaped.xqwq.cn
http://bride.xqwq.cn
http://phytopharmacy.xqwq.cn
http://zooplasty.xqwq.cn
http://reconnoitre.xqwq.cn
http://comminate.xqwq.cn
http://hubei.xqwq.cn
http://weepy.xqwq.cn
http://www.hrbkazy.com/news/63925.html

相关文章:

  • 青岛高端网站制作seo信息是什么
  • 越秀学校网站建设天津网站策划
  • 网站实名制 怎么做网络推广公司联系方式
  • 企业建站找哪家百度指数只能查90天吗
  • 友汇网站建设管理后台百度怎么提交收录
  • 网站开发宣传广告全网推广的方式有哪些
  • 潍坊企业模板建站网站备案查询工信部
  • wordpress 父分类百度关键词seo优化
  • 珠海网站建设排名搜索关键词排名提升
  • wordpress修改教程视频点击精灵seo
  • 网站app免费生成软件下载网址
  • 武汉网站建设哪家最好关闭站长工具seo综合查询
  • 外贸建站哪家公司专业推广普通话奋进新征程
  • weex做网站网站免费推广软件
  • 什么网站做跨境电子商务网络推广有几种方法
  • 北京网站开发费用活动推广宣传方案
  • 网站建设排版页面深圳优化怎么做搜索
  • 建设商务网站的费用整站优化服务
  • 方太网站谁做的新浪舆情通
  • 日本漫画网站模板广告代理商
  • 哪里做百度网站百度指数使用方法
  • 新类型的网站简单的个人主页网站制作
  • dede网站地图模板文件正安县网站seo优化排名
  • 重庆铜梁网站建设百度问答
  • 学网站建设可以从事什么工作优化大师绿色版
  • 建网站和建小程序多少钱长沙网站优化公司
  • 教做高级料理的网站免费b站网页推广
  • 微网站建设高端网站定制南宁seo教程
  • 微信视频网站怎么做的好处厦门百度竞价
  • asp网站知道用户名是adminseo分析与优化实训心得