每日一题(小白)字符串娱乐篇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);
相关推荐
焦虑的说说5 小时前
秒杀系统设计方案
java
huangdong_5 小时前
淘宝商品SKU图自动分类技术深度解析:从DOM解析到智能归档
开发语言·javascript·ecmascript
阿正的梦工坊5 小时前
【Rust】12-借用检查器与非词法生命周期
开发语言·后端·rust
云絮.5 小时前
数据库操作
数据库·mysql·算法·oracle
许彰午5 小时前
30_Java Stream流操作全解
java·windows·python
小林ixn5 小时前
LeetCode 206. 反转链表(迭代 + 递归详解)
算法·leetcode·链表
qq_2518364575 小时前
基于java Web网络订餐系统设计与实现 源码文档
java·开发语言·前端
秋96 小时前
3年经验Python后端转AI Engineer:3个月实战转型计划(2026版)
开发语言·人工智能·python
凡人叶枫6 小时前
Effective C++ 条款17:以独立语句将 newed 对象置入智能指针
java·linux·开发语言·c++·算法
飞天狗1116 小时前
零基础JavaWeb入门——第2课:让网页“活”起来 —— JSP是什么?
java·开发语言·前端·后端·web