#6811. 字符串加工厂

字符串加工厂

题目背景

小蓝在编程课上学习了字符串的基础操作,他设计了一个多步骤的字符串加工流水线。请你编写一个程序,模拟这个加工过程。

题目描述

给定一个字符串 SS(可能包含空格)和两个正整数 l,rl, r,请依次完成以下操作,并按要求输出最终结果:

  1. 大小写翻转:将 SS 中所有大写字母变为小写,小写字母变为大写,非字母字符保持不变。
  2. 反转:将上一步得到的字符串整个反转。
  3. 截取子串:从反转后的字符串中提取第 ll 到第 rr 个字符(下标从 11 开始,包含 llrr),得到新字符串 TT。题目保证 1lrS1 \le l \le r \le |S|
  4. 替换数字:将 TT 中所有的数字字符(09)替换为 *
  5. 添加边界:在 TT 的首尾各添加一个字符 #,得到字符串 UU
  6. 回文判断:判断 UU 是否为回文字符串。回文指正读与反读完全相同,需要区分字母的大小写
  7. 统计元音:统计 UU 中元音字母的个数。元音字母包括 aeiou 以及它们对应的大写形式 AEIOU

输入格式

第一行,一个字符串 SS,可能包含空格。
第二行,两个正整数 l,rl, r,用空格隔开。

输出格式

共三行:
第一行输出最终的字符串 UU
第二行输出一个字符串:如果 UU 是回文则输出 Palindrome,否则输出 Not palindrome
第三行输出一个整数,表示 UU 中元音字母的个数。

样例

Hello, World! 123
3 10
#* !DLROw#
Not palindrome
1

样例解释

对输入串 "Hello, World! 123" 依次执行操作:

  1. 大小写翻转:hELLO, wORLD! 123
  2. 反转:321 !DLROw ,OLLEh
  3. 取第 331010 个字符:1 !DLROw
  4. 替换数字:* !DLROw
  5. 首尾加 ##* !DLROw#
  6. 回文判断:倒过来为 #wORLD! *#,不相同,不是回文
  7. 统计元音:仅有一个大写 O,数量为 11

数据范围

n=Sn = |S|,满足 1n1031 \le n \le 10^31lrn1 \le l \le r \le n
SS 仅包含 ASCII 可见字符(含空格)。