c++题目求解
题目描述
在这个挑战中,将字符串转换为由单个空格分隔的一系列单词(或字符序列),每个单词的长度与圆周率(π)的十进制表示的前 15 位相同:
3.14159265358979
如果一个字符串包含的字符多于 π 数字总和给出的总数,则丢弃未使用的字符,您将只使用构成 15 个单词所需的字符。
String = "HOWINEEDADRINKALCOHOLICINNATUREAFTERTHEHEAVYLECTURESINVOLVINGQUANTUMMECHANICSANDALLTHESECRETSOFTHEUNIVERSE"
Pi String = "HOW I NEED A DRINK ALCOHOLIC IN NATURE AFTER THE HEAVY LECTURES INVOLVING QUANTUM MECHANICS"
每个单词都有相同长度的π在相同的下标处?
"HOW" = 3, "I" = 1, "NEED" = 4, "A" = 1, "DRINK" = 5
"ALCOHOLIC" = 9, "IN" = 2, "NATURE" = 6, "AFTER" = 5
"THE" = 3, "HEAVY" = 5, "LECTURES" = 8, "INVOLVING" = 9
"QUANTUM" = 7, "MECHANICS" = 9
3.14159265358979
此外,如果一个字符串包含的字符少于 π 数字总和给出的总数量,在任何情况下,你必须尊重数字的序列来获得单词。
String = "FORALOOP"
Pi String = "FOR A LOOP"
每个单词都有相同长度的Pi在相同的下标处?
"FOR" = 3, "A" = 1, "LOOP" = 4
3.14
如果字符串中包含的字母与数字不完全匹配,在这种情况下,您将重复最后一个字母,直到单词具有正确的长度。
String = "CANIMAKEAGUESSNOW"
Pi String = "CAN I MAKE A GUESS NOWWWWWWW"
每个单词都有相同长度的Pi在相同的下标处?
"CAN" = 3, "I" = 1, "MAKE" = 4, "A" = 1, "GUESS" = 5, "NOW" = 3
3.14153 (Wrong!)
第6个单词“NOW”的长度(3)…
...与Pi(9)的第六位不匹配
最后一个字母“W”将被重复……
...直到单词的长度与数字匹配为止
"CAN" = 3, "I" = 1, "MAKE" = 4, "A" = 1, "GUESS" = 5, "NOWWWWWWW" = 9
3.14159 (Correct!)
如果给定字符串为空,则必须返回一个空字符串。
给定一个字符串 txt,实现一个函数,该函数返回根据上述说明格式化的相同字符串。
输入输出格式
输入格式
第一行有一个字符串;
输出格式
一行输出字符串,表示 Pilish 字符串,每个字符串单词用一个空格隔开。
输入输出样例1
输入
33314444
输出
333 1 4444
解释(可选)
3.14
输入输出样例2
输入
HOWINEEDADRINKALCOHOLICINNATUREAFTERTHEHEAVYLECTURESINVOLVINGQUANTUMMECHANICSANDALLTHESECRETSOFTHEUNIVERSE
输出
HOW I NEED A DRINK ALCOHOLIC IN NATURE AFTER THE HEAVY LECTURES INVOLVING QUANTUM MECHANICS
解释(可选)
"HOW" = 3, "I" = 1, "NEED" = 4, "A" = 1, "DRINK" = 5
"ALCOHOLIC" = 9, "IN" = 2, "NATURE" = 6, "AFTER" = 5
"THE" = 3, "HEAVY" = 5, "LECTURES" = 8, "INVOLVING" = 9
"QUANTUM" = 7, "MECHANICS" = 9
3.14159265358979
说明提示
在函数中不需要考虑将 π 的整数部分与小数部分分开的点:它出现在指令和示例中只是为了便于阅读。