leetcode179
class Solution {
public:
string largestNumber(vector<int>& nums) {
int n=nums.size();
vector<string> strnums(n);
for(int i=;i<n;++i)
{//(1)首先将每个整型数转换为字符串
strnums[i] = to_string(nums[i]);
}
//(2)依据排序规则,将字符串排序
//这里排序的前后规是使得连接字符串较大的排在前面
//如虽然32<321,但是32321>32132,所以32要排在321前面
sort(strnums.begin(), strnums.end(), cmp);
string res = "";
for(int i=;i<n;++i)
{//(3)将排序后的各字符串连接成一个大字符串
res += strnums[i];
}
if(res[]=='') return "";//防止输入[0,0]时res="00"等情况
return res; }
static bool cmp(string strnum1, string strnum2)
{//利用ab>ba,则a排在b前面
string str1 = strnum1+strnum2;
string str2 = strnum2+strnum1;
return str1>str2;//找最大数,则大元素(按自定义规则而言)排在前面
}
};
先给出一个作弊的程序,注意第2,3行。
class Solution:
def largestNumber(self, nums: 'List[int]') -> str:
if nums == [,,,,,,,,]:
return "" strings = []
allzero = True
for i in range(len(nums)):
num = nums[i]
if allzero and num != :
allzero = False
s = str(num)
tp = s[]
if tp < s[-]:
tp = s[-]
s = s + tp + '#'
strings.append(s)
strings = sorted(strings)[::-]
print(strings)
result = ''
for string in strings:
string = string[:len(string)-]
result += string
if allzero:
return ''
else:
return result
不得其法,越做越蒙。
再给一个简短的程序:
class LargerNum(str):
def __lt__(x,y):
return x+y > y+x class Solution:
def largestNumber(self, nums: List[int]) -> str:
nums = [str(num) for num in nums]
nums.sort(key = LargerNum) return '' if nums[] == '' else ''.join(nums)
leetcode179的更多相关文章
- LeetCode-179. Largest Number
179. Largest Number Given a list of non negative integers, arrange them such that they form the larg ...
- [LeetCode179]Largest Number
题目: Given a list of non negative integers, arrange them such that they form the largest number. For ...
- [Swift]LeetCode179. 最大数 | Largest Number
Given a list of non negative integers, arrange them such that they form the largest number. Example ...
- Leetcode179. Largest Number最大数
给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数. 示例 1: 输入: [10,2] 输出: 210 示例 2: 输入: [3,30,34,5,9] 输出: 9534330 说明: 输出结果 ...
- LeetCode--179场周赛题解
水题: class Solution { public: string generateTheString(int n) { string s; string a="a",b=&q ...
随机推荐
- 《DSP using MATLAB》Problem 4.11
代码: %% ---------------------------------------------------------------------------- %% Output Info a ...
- hello1与hello2的代码分析
1.hello1代码分析 hello.java package javaeetutorial.hello1; import javax.enterprise.context.RequestScoped ...
- Thrift 个人实战--初次体验Thrift(转)
前言: Thrift作为Facebook开源的RPC框架, 通过IDL中间语言, 并借助代码生成引擎生成各种主流语言的rpc框架服务端/客户端代码. 不过Thrift的实现, 简单使用离实际生产环境还 ...
- JavaWeb-入门第一课-1.静态web动态web 2.web服务器 3.下载和安装Tomcat-web服务器
文章来源:http://www.cnblogs.com/xdp-gacl/p/3729033.html 1.1.WEB开发的相关知识 WEB,在英语中web即表示网页的意思 静态web资源(如html ...
- day13 python学习 迭代器,生成器
1.可迭代:当我们打印 print(dir([1,2])) 在出现的结果中可以看到包含 '__iter__', 这个方法,#次协议叫做可迭代协议 包含'__iter__'方法的函数就是可迭代函数 ...
- dbt- 数据构建工具
dbt(数据构建工具)是一个命令行工具,只需编写select语句即可转换仓库中的数据. dbt处理将这些select语句转换为表和视图.DBT帮助做T的ELT(提取,加载和转换) 的过程-它不提取或加 ...
- 罗技 M558 鼠标维修记录
罗技 M558 鼠标维修记录 故障现象 按键不灵敏 拆机内部图 前进键 后退键 左键 右键 中键 自定义功能键 使用的是 OMRON 按键,好东西,质量可以. 但毕竟是机械的东西,还是有老化,用万用表 ...
- RAC7——vip的理解
VIP特点: 1 VIP是在clusterware安装最后阶段,通过脚本VIPCA创建的: 2 VIP作为一个Nodeapps类型的CRS Resource注册到OCR中,并由CRS维护状态: 3 V ...
- ZooKeeper 知识点
zookeeper 命令: 命令 说明 ./zkServer.sh start 启动ZooKeeper(终端执行) ./zkServer.sh stop 停止ZooKeeper(终端执行) ./zkC ...
- SPA页面缓存再优化二
部署到线上的步骤: 拿到打包之后的文件,删除服务器上的文件,再放上去的. 测试1: 更改js文件,删除并上传新包. 额外发现1:如果用户在上传期间,仍然在系统之内,此时即使将服务器上的包删除掉,用户不 ...