Sắp xếp lại số trong chuỗi
Đưa ra một chuỗi, hãy viết một chương trình để sắp xếp lại tất cả các số xuất hiện trong chuỗi theo thứ tự giảm. Lưu ý: Sẽ không có bất kỳ số âm hoặc số âm nào có phần thập phân.
Đầu vào sẽ là một dòng duy nhất chứa một chuỗi.
Đầu ra phải là một dòng duy nhất chứa chuỗi sửa đổi với tất cả các số trong chuỗi được đặt hàng lại theo thứ tự giảm.
Ví dụ: nếu chuỗi đã cho là "Tôi 5 tuổi và 11 tháng tuổi", các con số là 5, 11. Mã của bạn nên in câu sau khi đặt lại các con số là "Tôi 11 tuổi và 5 tháng tuổi".
Đầu vào mẫu
Tôi 5 tuổi và 11 tháng tuổi
Đầu ra mẫu
Tôi 11 tuổi và 5 tháng tuổi
Đầu vào mẫu
Python4 Anjali25
Đầu ra mẫu
Tôi 11 tuổi và 5 tháng tuổi
Đầu vào mẫu
1python254
Đầu ra mẫu
254python1
Đầu vào mẫu
Python4 Anjali25
Đầu ra mẫu
Tôi 11 tuổi và 5 tháng tuổi
Sắp xếp lại số trong chuỗi
Đưa ra một chuỗi, hãy viết một chương trình để sắp xếp lại tất cả các số xuất hiện trong chuỗi theo thứ tự giảm. Lưu ý: Sẽ không có bất kỳ số âm hoặc số âm nào có phần thập phân.
Đầu vào
Đầu vào sẽ là một dòng duy nhất chứa một chuỗi.
Đầu ra
Đầu ra phải là một dòng duy nhất chứa chuỗi sửa đổi với tất cả các số trong chuỗi được đặt hàng lại theo thứ tự giảm.
Giải trình
Ví dụ: nếu chuỗi đã cho là "Tôi 5 tuổi và 11 tháng tuổi", các con số là 5, 11. Mã của bạn nên in câu sau khi đặt lại các con số là "Tôi 11 tuổi và 5 tháng tuổi".
Đầu vào mẫu 1
Tôi 5 tuổi và 11 tháng tuổi
Đầu ra mẫu 1
Tôi 11 tuổi và 5 tháng tuổi
Đầu vào mẫu 1
Tôi 5 tuổi và 11 tháng tuổi
Đầu ra mẫu 1
Tôi 11 tuổi và 5 tháng tuổi
6
Tháng 9: = SEP_SIZE Số không gian ..
Learn more.
Làm thế nào để đảo ngược một chuỗi đầu vào trong Python?
Sử dụng phương thức đảo ngược [] để đảo ngược một chuỗi trong Python, bạn cũng có thể sử dụng phương thức đảo ngược trong Python trả về một đối tượng đảo ngược hoặc trình lặp của chuỗi đầu vào. Điều duy nhất bạn cần làm là thực hiện một thao tác tham gia bổ sung trên đối tượng đảo ngược kết quả và trả về chuỗi mới.
Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Sắp xếp lại số trong chuỗi
Đưa ra một chuỗi, hãy viết một chương trình để sắp xếp lại tất cả các số xuất hiện trong chuỗi theo thứ tự giảm. Lưu ý: Sẽ không có bất kỳ số âm hoặc số âm nào có phần thập phân.
Đầu vào
Explanation:
Đầu vào sẽ là một dòng duy nhất chứa một chuỗi.
#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
Đầu ra
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[]]]
Output:
Đầu ra phải là một dòng duy nhất chứa chuỗi sửa đổi với tất cả các số trong chuỗi được đặt hàng lại theo thứ tự giảm.Ví dụ: nếu chuỗi đã cho là "Tôi 5 tuổi và 11 tháng tuổi", các con số là 5, 11. Mã của bạn nên in câu sau khi đặt lại các con số là "Tôi 11 tuổi và 5 tháng tuổi".
Cách tiếp cận của tôi:Jul 9, 2021 at 11:12
1
I am 55 years 28months 11 weeks and 9 days old
Gợi ý: Kiểm tra độ dài của các số của bạn trong văn bản của bạn-bạn có thể không phải lúc nào
"Try 1 or 423 or 849 things."
Và trong trường hợp đó, việc thay thế "char-by-char" của bạn sẽ trở nên khó khăn và bạn mất không gian.
Về cơ bản, bạn thay thế
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[]]]
4 bằng một số 2 chữ số [hoặc 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[]]]
5 bằng một chữ số 3 chữ số, v.v. giết chết không gian].Nó sẽ tốt hơn để
- Phát hiện tất cả các số
- sắp xếp các số được phát hiện theo giá trị số nguyên của chúng giảm dần
- Thay thế tất cả các số được phát hiện trong văn bản của bạn bằng định dạng-placeholder '{}'
- Sử dụng
6 để thay thế các số theo thứ tự chính xácdef 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[]]]
như vậy:
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]]
Output:
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.
Đã trả lời ngày 9 tháng 7 năm 2021 lúc 11:36Jul 9, 2021 at 11:36
Patrick Artnerpatrick ArtnerPatrick Artner
49.3k8 Huy hiệu vàng45 Huy hiệu bạc67 Huy hiệu Đồng8 gold badges45 silver badges67 bronze badges
1
Bạn có thể sử dụng một biểu thức thông thường để tìm tất cả các số:
import re
inp = 'I am 28 years 9 months 11 weeks and 55 days old'
numbers = tuple[sorted[map[int, re.findall[r'[[\d]+]', inp]], reverse=True]] # find all numbers, converts each number to int, sort them and convert to tuple
inpPlaceholders = re.sub[r'[[\d]+]', '%s', inp] # replace all numbers in the string to %s placeholders
print[inpPlaceholders % numbers] # rebuild the string, using %s string formatting
Out:
I am 55 years 28 months 11 weeks and 9 days old
Đã trả lời ngày 9 tháng 7 năm 2021 lúc 11:36Jul 9, 2021 at 11:36
Patrick Artnerpatrick ArtnerMaurice Meyer
49.3k8 Huy hiệu vàng45 Huy hiệu bạc67 Huy hiệu Đồng3 gold badges25 silver badges44 bronze badges
Bạn có thể thử điều này:
def RearrangeNumbers[source]:
tmp0=source.split[]
int_l=[]
for j,i in enumerate[tmp0]:
try:
tmp0[j]=int[i]
int_l.append[int[i]]
except ValueError:
pass
int_l.sort[]
for j,i in enumerate[tmp0]:
if isinstance[i,int]:
tmp0[j]=str[int_l[0]]
int_l.pop[0]
return ' '.join[tmp0]
print[RearrangeNumbers[input[]]]
Chạy mẫu.
I am 28 years 9 months 11 weeks and 55 days old
I am 9 years 11 months 28 weeks and 55 days old
Đã trả lời ngày 9 tháng 7 năm 2021 lúc 11:39Jul 9, 2021 at 11:39
Bạn có thể sử dụng String.Split [] và Danh sách hiểu. Để điền vào chuỗi mới, bạn có thể chuyển đổi danh sách các số được sắp xếp trong trình lặp:
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[]]]
0Đã trả lời ngày 9 tháng 7 năm 2021 lúc 12:15Jul 9, 2021 at 12:15
frabfrabfrab
1.1231 Huy hiệu vàng3 Huy hiệu bạc13 Huy hiệu đồng1 gold badge3 silver badges13 bronze badges
Bạn có thể sử dụng
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[]]]
7 và 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[]]]
8: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[]]]
1Output:
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[]]]
2Đã trả lời ngày 9 tháng 7 năm 2021 lúc 16:00Jul 9, 2021 at 16:00
Ajax1234Ajax1234Ajax1234
67.6K7 Huy hiệu vàng58 Huy hiệu bạc100 Huy hiệu đồng7 gold badges58 silver badges100 bronze badges
Mã này dài và chỉ dành cho người mới bắt đầu, những người chỉ bắt đầu mã hóa và bị mắc kẹt tại một số điểm và không thể giải quyết vấn đề nhưng cần phải hoàn thành nó.
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[]]]
3Đã trả lời ngày 30 tháng 5 lúc 20:06May 30 at 20:06