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

蓝桥杯 本质上升序列

题目描述:

小蓝特别喜欢单调递增的事物。 在一个字符串中,如果取出若干个字符,将这些字符按照在字符串中的顺序排列后是单调递增的,则成为这个字符串中的一个单调递增子序列。 例如,在字符串 lanqiao 中,如果取出字符 n 和 q,则 nq组成一个单 调递增子序列。类似的单调递增子序列还有 lnq、 i、 ano 等等。小蓝发现,有些子序列虽然位置不同,但是字符序列是一样的,例如取第 二个字符和最后一个字符可以取到 ao,取最后两个字符也可以取到 ao。小蓝认为他们并没有本质不同。 对于一个字符串,小蓝想知道,本质不同的递增子序列有多少个? 例如,对于字符串
lanqiao,本质不同的递增子序列有 21 个。它们分别 是 l、 a、 n、 q、 i、 o、 ln、 an、 lq、 aq、 nq、ai、 lo、 ao、 no、 io、 lnq、anq、 lno、 ano、 aio。 请问对于以下字符串(共 200
个小写英文字母,分四行显示):(如果你把 以下文字复制到文本文件中,请务必检查复制的内容是否与文档中的一致。在 试题目录下有一个文件inc.txt,内容与下面的文本相同)
本质不同的递增子序列有多少个?

tocyjkdzcieoiodfpbgcncsrjbhmugdnojjddhllnofawllbhf
iadgdcdjstemphmnjihecoapdjjrprrqnhgccevdarufmliqij
gihhfgdcmxvicfauachlifhafpdccfseflcdgjncadfclvfmad
vrnaaahahndsikzssoywakgnfjjaihtniptwoulxbaeqkqhfwl

解题思路:

拿到题目一看是字母比较大小,直接想到遍历字符串比较就行

1:先创建一个数组a[]=new int [字符串的具体长度],它的数值是统计以每一个字符结尾的子字符串的个数的,比如“12”,a[0]的值代表以1结尾的子字符串=1,a[1]以2结尾有 “2”,“12”,所以a[1]=2;

2:因为每个字符都是字符串的子序列,可以令a[i]=1;

3:不难理解,a[i]的值又全体a[j]共同决定(0<j<i)

比如说有一个字符串有数字构成(和字符一样):127837;


按照a的定义 7 17 27 127属于a[5],因为他们的结尾都是7且都是上升序列,但是累加时这四个和a[2]对应的序列集重复 因此需要在a[5]-a[2]

代码:

String s="tocyjkdzcieoiodfpbgcncsrjbhmugdnojjddhllnofawllbhfiadgdcdjstemphmnjihecoapdjjrprrqnhgccevdarufmliqijgihhfgdcmxvicfauachlifhafpdccfseflcdgjncadfclvfmadvrnaaahahndsikzssoywakgnfjjaihtniptwoulxbaeqkqhfwl";int a[]=new int[200];int count=0;for(int i=0;i<200;i++) {a[i]=1;}for(int i=1;i<200;i++) {for(int j=0;j<i;j++) {if(s.charAt(i)>s.charAt(j)) {a[i]+=a[j];}else if(s.charAt(i)==s.charAt(j)) {a[i]-=a[j];}}}for(int i=0;i<200;i++) {count+=a[i];}System.out.println(count);

相关文章:

  • 2024批量下载微博内容点赞转发评论数等数据,词云分析微博数据
  • 【动手学深度学习-pytorch】9.2长短期记忆网络(LSTM)
  • K8S的mountPath和subPath
  • LeetCode 206.反转链表
  • 如何在智能交通系统中使用物联网技术提高道路安全和效率
  • 怎么让ChatGPT批量写作原创文章
  • Springboot+MybatisPlus+EasyExcel实现文件导入数据
  • Mysql中的那些锁
  • 【跟着CHATGPT学习硬件外设 | 04】ADC
  • SVG XML 格式定义图形入门介绍
  • 【AI模型-机器学习工具部署】远程服务器配置Jupyter notebook或jupyter lab服务
  • kubernetes-k9s一个基于Linux 终端的集群管理工具
  • 微信小程序布局中的单位及使用
  • EXCEL 通过FILES函数获取指定路径中的所有文件名
  • Docker Desktop 在 Windows 上的安装和使用
  • classpath对获取配置文件的影响
  • C语言笔记(第一章:C语言编程)
  • IDEA常用插件整理
  • mac修复ab及siege安装
  • orm2 中文文档 3.1 模型属性
  • php ci框架整合银盛支付
  • spring学习第二天
  • text-decoration与color属性
  • Vue.js 移动端适配之 vw 解决方案
  • yii2权限控制rbac之rule详细讲解
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 前端路由实现-history
  • 适配mpvue平台的的微信小程序日历组件mpvue-calendar
  • 自定义函数
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • #13 yum、编译安装与sed命令的使用
  • #Lua:Lua调用C++生成的DLL库
  • #预处理和函数的对比以及条件编译
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (2)STL算法之元素计数
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (Redis使用系列) Springboot 在redis中使用BloomFilter布隆过滤器机制 六
  • (solr系列:一)使用tomcat部署solr服务
  • (第二周)效能测试
  • (论文阅读32/100)Flowing convnets for human pose estimation in videos
  • (算法)求1到1亿间的质数或素数
  • (一)搭建springboot+vue前后端分离项目--前端vue搭建
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • (转)Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案一
  • (转)winform之ListView
  • .naturalWidth 和naturalHeight属性,
  • .NET 4 并行(多核)“.NET研究”编程系列之二 从Task开始
  • .NET 中的轻量级线程安全
  • .NET/C# 使用 SpanT 为字符串处理提升性能
  • @ 代码随想录算法训练营第8周(C语言)|Day53(动态规划)
  • [3D基础]理解计算机3D图形学中的坐标系变换
  • [Android Pro] listView和GridView的item设置的高度和宽度不起作用
  • [BIZ] - 1.金融交易系统特点
  • [cocos2d-x]关于CC_CALLBACK