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

蓝桥杯-本质上升序列

没有白走的路,每一步都算数🎈🎈🎈

题目描述:

小蓝特别喜欢单调递增的事物

在一个字符串中如果取出若干个字符,按照在原来字符串中的顺序排列在一起,组成的新的字符串如果是单调递增的,那么则称这个字符串为一为一个单调递增子序列。但是对于lanqiao字符串,

单调子序列可以有l,a,n,q,i,o;

ao,io,q,nq,no,ai,aq,an,aio,ano,anq;

lo,ln,lq,lnq

但是,第一个‘a’能够和‘o’组成一个单调递增子序列,倒数第一个‘a’也能和‘o’组成一个子序列,我们称这样的序列本质上是相同的。求问总共有多少本质不同的单调上升子序列

输入描述:

输入一个字符串s,字符串总共有4行,每行50个字母,总共有200个字母。试求这个字符串的本质上升序列总共有多少?

样例输入输出:

样例输入:

tocyjkdzcieoiodfpbgcncsrjbhmugdnojjddhllnofawllbhf iadgdcdjstemphmnjihecoapdjjrprrqnhgccevdarufmliqij gihhfgdcmxvicfauachlifhafpdccfseflcdgjncadfclvfmad vrnaaahahndsikzssoywakgnfjjaihtniptwoulxbaeqkqhfwl

算法设计:

从后往前找,一个字符一个字符累加。遇到不相同的并且后面字母比前面大的就累加,遇到相同的则需要减去相同的字符串。

import os
import sys
s = "tocyjkdzcieoiodfpbgcncsrjbhmugdnojjddhllnofawllbhfiadgdcdjstemphmnjihecoapdjjrprrqnhgccevdarufmliqijgihhfgdcmxvicfauachlifhafpdccfseflcdgjncadfclvfmadvrnaaahahndsikzssoywakgnfjjaihtniptwoulxbaeqkqhfwl"
dp = [0]*200
n = len(s)
cnt = 0
for i in range(n-1,-1,-1):dp[i] = 1for j in range(i+1,n):if s[i]<s[j]:dp[i]+=dp[j]elif s[i]==s[j]:dp[i]-=dp[j]cnt+=dp[i]
print(cnt)

每日一句

摘自《平凡的世界》:

人生啊,是这样不可预测,没有永恒的痛苦,也没有永恒的幸福,生活像流水一般,有时是那么平展,有时又是那么曲折。

http://www.lryc.cn/news/25046.html

相关文章:

  • synchronized锁重入验证
  • 超简单的计数排序!!
  • 发现新大陆——原来软件开发根本不需要会编码(看我10分钟应用上线)
  • 【Leedcode】栈和队列必备的面试题(第二期)
  • Elasticsearch实战之(商品搜索API实现)
  • 剑指 Offer 14-剪绳子
  • 泰克示波器|MSO64示波器的应用
  • 1.4 黑群晖安装:SataPortMap和DiskIdxMap两种获取方式
  • JVM虚拟机概述(2)
  • Intel CSME 简述
  • 复位理论基础
  • Python基础知识——列表
  • 如何使用工时表管理项目和非项目的资源?
  • 项目经理如何做好质量保证与标准维持?非技术项目经理如何做好质量管控?
  • [文件操作] File 类的用法和 InputStream, OutputStream 的用法
  • 索莫菲模型的一些理解 Smomerfeld Model
  • SAP ERP系统MM模块常用增强之四:采购申请输入字段的校验检查
  • STM32C0介绍(1)----概述
  • windows无盘启动技术开发之传统BIOS(Legacy BIOS)引导程序开发之一
  • mysql实现if语句判断功能的六种使用形式
  • 在Vue3这样子写页面更快更高效
  • 做软件测试,如何才能实现月入20K?
  • mysql last lesson
  • 一、Redis入门概述(是什么,能干嘛,去哪下,怎么玩)
  • (六十二)当我们在SQL里进行分组的时候,如何才能使用索引?
  • python字符串练习
  • Java-封装、继承、多态
  • 问题三十二:离散二维傅立叶变换(Discrete Fourier Transformation)
  • 恢复谷歌翻译的究极方法
  • string函数以及string常用接口