- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
重新排列字符串中的数字
给定一个字符串,编写一个程序,以降序重新排列出现在字符串中的所有数字。注意:不会有任何负数或带小数部分的数字。
输入
输入将是包含字符串的单行。
输出
输出应该是一行,其中包含修改后的字符串,字符串中的所有数字都按降序重新排序。
说明:
例如,如果给定的字符串是“我 5 岁零 11 个月大”,则数字是 5、11。在将数字重新排序为“我 11 岁零 5 个月大”后,您的代码应该打印句子。
#Sample Input:
I am 5 years and 11 months old
#Sample Output:
I am 11 years and 5 months old
#Sample input:
I am 28 years 9 months 11 weeks and 55 days old
#Sample output:
I am 55 years 28 months 11 weeks and 9 days old
我的做法:
def RearrangeNumbers(source):
tmp0 = list(source)
tmp1 = [c if c.isdigit() else ' ' for.
c in tmp0 ]
tmp2 = "".join(tmp1)
tmp3 = tmp2.split()
numbers = []
for w in tmp3:
numbers.append(int(w))
if len(numbers) < 2:
return source
numbers.sort(reverse=True)
result_string = ''
i = 0
while i < len(source):
c = source[i]
if not c.isdigit():
result_string += c
else:
result_string += str(numbers[0])
numbers = numbers[1:]
i+=1
i+=1
return result_string
print(RearrangeNumbers(input()))
I am 55 years 28months 11 weeks and 9 days old
但是28个月之间应该有空间
最佳答案
您在代码中逐个字符地执行大量字符串操作。以数字方式查找数字是完成您必须做的事情的复杂方法。您丢失的空间是由您的方法造成的:
提示:检查文本中数字的长度——你可能并不总是用另一个 1 位数字替换 1 位数字——有时你需要用 3 位数字替换 1 位数字:
"Try 1 or 423 or 849 things."
在这种情况下,您的“逐个字符”替换会变得不稳定,并且您会失去空间。
"2 "
由一个 2 位数字(或
"12 "
由一个 3 位数字等,杀死空间)。
string.formt()
以正确的顺序替换数字 def sortNumbers(text):
# replace all non-digit characters by space, split result
numbers = ''.join(t if t.isdigit() else ' ' for t in text).split()
# order descending by integer value
numbers.sort(key=lambda x:-int(x))
# replace all found numbers - do not mess with the original string with
# respect to splitting, spaces or anything else - multiple spaces
# might get reduced to 1 space if you "split()" it.
for n in numbers:
text = text.replace(n, "{}")
return text.format(*numbers) # put the sorted numbers back into the string
for text in ["I am 5 years and 11 months old",
"I am 28 years 9 months 11 weeks and 55 days old",
"What is 5 less then 45?",
"At 49th Street it is 500.", "It is $23 and 45."]:
print(sortNumbers(text))
输出:
I am 11 years and 5 months old
I am 55 years 28 months 11 weeks and 9 days old
What is 45 less then 5?
At 500th Street it is 49.
It is $45 and 23.
关于python - 重新排列字符串中的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68315825/
如何使用 SPListCollection.Add(String, String, String, String, Int32, String, SPListTemplate.QuickLaunchO
我刚刚开始使用 C++ 并且对 C# 有一些经验,所以我有一些一般的编程经验。然而,似乎我马上就被击落了。我试过在谷歌上寻找,以免浪费任何人的时间,但没有结果。 int main(int argc,
这个问题已经有答案了: In Java 8 how do I transform a Map to another Map using a lambda? (8 个回答) Convert a Map>
我正在使用 node + typescript 和集成的 swagger 进行 API 调用。我 Swagger 提出以下要求 http://localhost:3033/employees/sear
我是 C++ 容器模板的新手。我收集了一些记录。每条记录都有一个唯一的名称,以及一个字段/值对列表。将按名称访问记录。字段/值对的顺序很重要。因此我设计如下: typedef string
我需要这两种方法,但j2me没有,我找到了一个replaceall();但这是 replaceall(string,string,string); 第二个方法是SringBuffer但在j2me中它没
If string is an alias of String in the .net framework为什么会发生这种情况,我应该如何解释它: type JustAString = string
我有两个列表(或字符串):一个大,另一个小。 我想检查较大的(A)是否包含小的(B)。 我的期望如下: 案例 1. B 是 A 的子集 A = [1,2,3] B = [1,2] contains(A
我有一个似乎无法解决的小问题。 这里...我有一个像这样创建的输入... var input = $(''); 如果我这样做......一切都很好 $(this).append(input); 如果我
我有以下代码片段 string[] lines = objects.Split(new string[] { "\r\n", "\n" }, StringSplitOptions.No
这可能真的很简单,但我已经坚持了一段时间了。 我正在尝试输出一个字符串,然后输出一个带有两位小数的 double ,后跟另一个字符串,这是我的代码。 System.out.printf("成本:%.2
以下是 Cloud Firestore 列表查询中的示例之一 citiesRef.where("state", ">=", "CA").where("state", "= 字符串,我们在Stack O
我正在尝试检查一个字符串是否包含在另一个字符串中。后面的代码非常简单。我怎样才能在 jquery 中做到这一点? function deleteRow(locName, locID) { if
这个问题在这里已经有了答案: How to implement big int in C++ (14 个答案) 关闭 9 年前。 我有 2 个字符串,都只包含数字。这些数字大于 uint64_t 的
我有一个带有自定义转换器的 Dozer 映射: com.xyz.Customer com.xyz.CustomerDAO customerName
这个问题在这里已经有了答案: How do I compare strings in Java? (23 个回答) 关闭 6 年前。 我想了解字符串池的工作原理以及一个字符串等于另一个字符串的规则是
我已阅读 this问题和其他一些问题。但它们与我的问题有些无关 对于 UILabel 如果你不指定 ? 或 ! 你会得到这样的错误: @IBOutlet property has non-option
这两种方法中哪一种在理论上更快,为什么? (指向字符串的指针必须是常量。) destination[count] 和 *destination++ 之间的确切区别是什么? destination[co
This question already has answers here: Closed 11 years ago. Possible Duplicates: Is String.Format a
我有一个Stream一个文件的,现在我想将相同的单词组合成 Map这很重要,这个词在 Stream 中出现的频率. 我知道我必须使用 collect(Collectors.groupingBy(..)
我是一名优秀的程序员,十分优秀!