每日一题(小白)字符串娱乐篇16

分析题意可以了解到本题要求在一串字符串中找到所有组合起来排序递增的字符串。我们可以默认所有字符在字符串中的上升序列是1,从第一个字符开始找,如果后面的字符大于前面的字符就说明这是一个上序列那么后面字符所在的数组加一,如果连接不上前面的(两个字符一模一样的)就置为0.

①使用数组存储每一位元素的上升序列值

②后面元素要么与前者构成上升序列,要么则重置为0

③以此循环字符串中每一个元素将所有元素的上升序列相加即可得到最终值

④输出结果

复制代码
		String s="tocyjkdzcieoiodfpbgcncsrjbhmugdnojjddhllnofawllbhfiadgdcdjstemphmnjihecoapdjjrprrqnhgccevdarufmliqijgihhfgdcmxvicfauachlifhafpdccfseflcdgjncadfclvfmadvrnaaahahndsikzssoywakgnfjjaihtniptwoulxbaeqkqhfwl";
		int[] num=new int[s.length()];//每一个元素的上升子序列个数数组
		char[] c = s.toCharArray();//转为字符数组
		for (int i = 0; i < num.length; i++) {
			num[i]=1;//初值都为1
		}
		for (int i = 0; i < s.length(); i++) {//后面的元素下标
			for (int j = 0; j < i; j++) {//前面的元素下标
				if (c[i]>c[j]) {//上升序列
					num[i]+=num[j];
				}
				if (c[i]==c[j]) {//重置
					num[j]=0;
				}
			}
		}
		long sum=0;
		for (int i = 0; i < num.length; i++) {
				sum+=num[i];
		}
		System.out.println(sum);
相关推荐
葫三生43 分钟前
如何评价《论三生原理》在科技界的地位?
人工智能·算法·机器学习·数学建模·量子计算
TT哇44 分钟前
【Java EE初阶】计算机是如何⼯作的
java·redis·java-ee
专注VB编程开发20年1 小时前
javascript的类,ES6模块写法在VSCODE中智能提示
开发语言·javascript·vscode
拓端研究室3 小时前
视频讲解:门槛效应模型Threshold Effect分析数字金融指数与消费结构数据
前端·算法
随缘而动,随遇而安5 小时前
第八十八篇 大数据中的递归算法:从俄罗斯套娃到分布式计算的奇妙之旅
大数据·数据结构·算法
IT古董5 小时前
【第二章:机器学习与神经网络概述】03.类算法理论与实践-(3)决策树分类器
神经网络·算法·机器学习
Fireworkitte7 小时前
Apache POI 详解 - Java 操作 Excel/Word/PPT
java·apache·excel
weixin-a153003083167 小时前
【playwright篇】教程(十七)[html元素知识]
java·前端·html
DCTANT8 小时前
【原创】国产化适配-全量迁移MySQL数据到OpenGauss数据库
java·数据库·spring boot·mysql·opengauss
Touper.8 小时前
SpringBoot -- 自动配置原理
java·spring boot·后端