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

每日一题(小白)字符串娱乐篇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);

相关文章:

  • Python星球日记 - 第5天:循环结构
  • 代码随想录算法训练营Day20
  • 【USTC 计算机网络】第三章:传输层 - 面向连接的传输:TCP
  • 【堆排序】 及 【Top-K问题】
  • mysql和sqlite关于data数据的识别问题
  • 关于Ubuntu系统的远程控制及文件传输
  • C++中的匿名函数
  • 毕设论文的分类号与UDC查询的网站
  • 类似于langchain的开发框架有哪些?
  • Java内存模型详解:堆、栈、方法区
  • QVector成员
  • SQL Server表数据的插入、修改和删除
  • C++的多态-上
  • 【软件测试】性能测试 —— 基础概念篇
  • Kotlin语言进阶:协程、Flow、Channel详解(一)
  • Spring Boot + Kafka 消息队列从零到落地
  • 基于springboot科研论文检索系统的设计(源码+lw+部署文档+讲解),源码可白嫖!
  • bookkeeper基本概念
  • 【9】数据结构的串篇章
  • 理解进程和线程的概念
  • web程序设计asp.net网站开发课后答案/市场调研报告范文模板word
  • 重庆网站建设公司价格/短视频询盘获客系统
  • 制作英文网站费用/it培训机构排名及学费
  • wap网站开发工具/济南网站优化公司
  • 开装潢公司做网站/目前好的推广平台
  • wordpress多站点 用户/网站搜索引擎优化诊断