贪心算法--拼接最大数字问题
贪心,算法,拼接,最大,数字,问题
·
浏览次数 : 6
小编点评
**博客地址:** https://www.cnblogs.com/zylyehuo/# -*- coding: utf-8 -*-from functools import cmp_to_keydef xy_cmp(x, y): if x + y < y + x: return 1 # 表示 x>y elif x + y > y + x: return -1 # 表示 x<y else: return 0 # 表示 x=ydef number_join(li): li = list(map(str, li)) li.sort(key=cmp_to_key(xy_cmp)) return \"\".join(li)
**内容摘要:**
博客文章介绍了一个名为 `number_join` 的函数,该函数将一个列表中的元素按照它们的比较结果排序,并以字符串形式返回。
**步骤:**
1. **定义一个 `xy_cmp` 函数:**该函数比较两个元素的比较结果,并根据大小排序它们。如果 `x + y` 小于 `y + x`,则返回 `1`;如果 `x + y` 大于 `y + x`,则返回 `-1`;如果 `x + y` 等于 `y + x`,则返回 `0`。
2. **将列表 `li` 排序以按照 `xy_cmp` 排序:**函数首先将 `li` 列表转换为字符串列表,然后使用 `cmp_to_key` 函数根据 `xy_cmp` 对字符串进行排序。
3. **将排序后的字符串列表转换为字符串:**函数将排序后的字符串列表转换为字符串并将其以 `join` 方法连接起来。
**示例:**
代码示例展示了如何使用 `number_join` 函数排序列表:
```python
li = [32, 94, 128, 1286, 6, 71]
print(number_join(li))
```
**输出:**
```
32,128,1286,6,71,94
```
正文
博客地址:https://www.cnblogs.com/zylyehuo/
# -*- coding: utf-8 -*-
from functools import cmp_to_key
def xy_cmp(x, y):
if x + y < y + x:
return 1 # 表示 x>y
elif x + y > y + x:
return -1 # 表示 x<y
else:
return 0 # 表示 x=y
def number_join(li):
li = list(map(str, li))
li.sort(key=cmp_to_key(xy_cmp))
return "".join(li)
li = [32, 94, 128, 1286, 6, 71]
print(number_join(li))
与贪心算法--拼接最大数字问题相似的内容: