怎么做交易网站,代写企业软文,网址域名注册阿里云,python能否做网站题目描述
给定一个非空字符串S#xff0c;其被N个‘-’分隔成N1的子串#xff0c;给定正整数K#xff0c;要求除第一个子串外#xff0c;其余的子串每K个字符组成新的子串#xff0c;并用‘-’分隔。对于新组成的每一个子串#xff0c;如果它含有的小写字母比大写字母多…题目描述
给定一个非空字符串S其被N个‘-’分隔成N1的子串给定正整数K要求除第一个子串外其余的子串每K个字符组成新的子串并用‘-’分隔。对于新组成的每一个子串如果它含有的小写字母比大写字母多则将这个子串的所有大写字母转换为小写字母反之如果它含有的大写字母比小写字母多则将这个子串的所有小写字母转换为大写字母大小写字母的数量相等时不做转换。 输入描述: 输入为两行第一行为参数K第二行为字符串S。 输出描述: 输出转换后的字符串。 示例1 输入 3 12abc-abCABc-4aB 输出 12abc-abc-ABC-4aB- 说明 子串为12abc、abCABc、4aB第一个子串保留后面的子串每3个字符一组为abC、ABc、4aB、abC中小写字母较多转换为abcABc中大写字母较多转换为ABC4aB中大小写字母都为1个不做转换中没有字母连起来即12abc-abc-ABC-4aB- 示例2 输入 12 12abc-abCABc-4aB 输出 12abc-abCABc4aB 说明 子串为12abc、abCABc、4aB第一个子串保留后面的子串每12个字符一组为abCABc4aB这个子串中大小写字母都为4个不做转换连起来即12abc-abCABc4aB 代码实现
# coding:utf-8
class Solution:def stringSplit(self, k, s):begin 0end 0# 遍历字符串遇到第一个分隔符的时候跳出将第一个子串存下来不需要做大小写转换for i in s:if i -:breakelse:end 1res s[begin:end]begin end 1# 从第二个子串开始判断while begin len(s):tmp lower 0linefix 0# 每K个字符串作为一个新的子串长度for i in range(k):while begin i linefix len(s) - 1 and s[begin i linefix] -: # 遇到分隔符直接跳过不处理分隔符计数器1linefix 1if begin i linefix len(s) - 1: # 超出原字符串长度跳出breakif s[begin i linefix].islower(): # 当前字符为小写则小写计数器加1lower 1elif s[begin i linefix].isupper(): # 当前字符为大写则小写计数器减1lower - 1tmp tmp s[begin i linefix]# 小写字符多则全部转小写反之转大写if lower 0:res res - tmp.lower()if lower 0:res res - tmp.upper()if lower 0:res res - tmpbegin begin k linefixreturn resif __name__ __main__:k input(K:)s input(s:)solution Solution()print(solution.stringSplit(int(k), s))