第 161 题:压缩字符串
题目描述: 给出一个字符串 a,你需要通过将字符串中连续的字母表示为:字母+出现次数
的方式来压缩
这个字符串。例如 "aabcccccaaa" 将被压缩成 "a2b1c5a3"。如果压缩后的字符串比原本的
字符串长,则直接打印原本的字符串 a。
例如:a="aabcccccaaa", 则输出:a2b1c5a3
>>> def strcompress(s): if s=='': return '' if len(s)==1: return s+'1' res,n=s[0],1 for i,c in enumerate(s[1:]): if c==s[i]: n+=1 else: res+=str(n)+c n=1 return res+str(n) >>> a="aabcccccaaa" >>> strcompress(a) 'a2b1c5a3' >>>
============================================================
第 162 题:字符串编辑
题目描述:对于一个字符串,你可以进行三种操作:
1.插入一个字符 2.删除一个字符 3.替换一个字符
现在给出两个字符串 a,b,判断其中的一个字符串是否能通过
最多一次的操作转换为另一个字符串。若能,则打印 YES,不能
则打印 NO。
例如 a="pale",b="ple",则输出:YES。
============================================================
第 163 题:DNA 序列
题目描述:众所周知,基因是由 DNA 组成的。而四种核苷酸 A(腺嘌呤),C(胞嘧啶),G(鸟嘌
呤),T(胸腺嘧啶)又是构建 DNA 的基础。在现代计算分子生物学里,寻找 DNA 蛋白质序列
的最长公共子序列问题是这个领域的基本的问题之一。但是本题有所不同。给定几个 DNA
子序列,请找到一个尽可能短的序列,使其能够满足包含所有给定的子序列。比如,给定了
ACGT、ATGC、CGTT 和 CAGT 四个子序列,下图最后一行的 DNA 序列满足题目要求。图中的
序列长度是最短的,但不一定只存在这一种方案。现在给你一个存储所有给定 DNA 子序列
的列表 L(保证 L 中最多不超过 8 个子序列,并且每个子序列长度不超过 5 且所有子序列长度
相同),请你找出满足上述要求的最短子序列,输出其长度(注意只要输出长度即可)。
例如:
L=["ACGT","ATGC","CGTT","CAGT"]则输出:8
============================================================
第 164 题:最长回文子串
题目描述:
给你一个字符串 s(s 长度不超过 1000),请你找出 s 中最长的回文子串(注意不一定是连续
子串),输出其长度。注意,只需要输出最长回文子串的长度即可。
例如:s="mmlam",则输出:3。
Note:"mmlam"的最长回文子串是"mmm",其长度是 3,因此样例应该输出:3
============================================================
第 165 题:表达式运算
题目描述:
现在给你一个正整数 n(0 最少的操作次数。
例如:n=31,则输出 6。