每个软件工程师都应该在 1 个小时内解决的 5 个编程问题 [悲剧版]

2015-05-09 14:08:23 +08:00
 jacob

最近很火的讨论,简单整理了一些: http://segmentfault.com/a/1190000002746474

5696 次点击
所在节点    分享发现
56 条回复
choury
2015-05-09 20:10:51 +08:00
@qwsqwa 我很怀疑你是否真搞过ACM,如你所说,123,1231,12312,三个数你比下,正确结果为:123123121231
xudufy
2015-05-09 21:24:44 +08:00
@theoractice 你的思路差一点就对了,应该是整体重复补齐,50应该补成5050,5位的话是50505之类
zhyu
2015-05-09 21:31:23 +08:00
这些题哪用得了一个小时。。20分钟足够了。。。
zhyu
2015-05-09 21:35:59 +08:00
Q4是leetcode原题,一行就完了,不过会有点长。。
cmp = lambda x, y: [1, -1][x + y > y + x]
result = ''.join(sorted(map(str, nums), cmp=cmp)).lstrip('0') or '0'
zhyu
2015-05-09 21:49:06 +08:00
用python写Q2不能更赞
from itertools import chain
result = list(chain.from_iterable(zip(list1, list2)))
znoodl
2015-05-09 22:11:42 +08:00
我敢说看到第三个题的时候肯定有人想把100个数计算出来一个个加一起
theoractice
2015-05-09 22:30:59 +08:00
@xudufy 诶,也不对,例如505和5055。看来只能重写compare法了
xudufy
2015-05-09 23:16:44 +08:00
@theoractice 刚试了一下要把长的补齐到短的的整倍数 505550 505505 画个图就会发现其实这就是x+y,y+x比较的微观过程
spacewander
2015-05-10 11:33:16 +08:00
@zhyu
Ruby只用一行:
list1.zip(list2).flatten
reeco
2015-05-10 13:45:00 +08:00
@lincanbin 看到美国圣地亚哥就想到金坷拉了
zhyu
2015-05-10 13:55:06 +08:00
@spacewander
因为 Ruby 有 Array.flatten 嘛,不过没想到 Ruby 里 Array.zip 居然返回的是 Array of Arrays 。。
其实能一行搞定的语言有很多,比如 elixir:
[list1, list2] |> List.zip |> Enum.map(&(Tuple.to_list(&1))) |> List.flatten
qwsqwa
2015-05-10 14:47:58 +08:00
@choury

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
using namespace std;

int n;
int a[111];

long long get(const int &a)
{
long long ret = 1;
while(ret < a){
ret *= 10;
}
return ret;
}

bool cmp(const int &a, const int &b)
{
return (long long)a*get(b)+b > (long long)b*get(a)+a;
}

void solve()
{
for(int i = 0; i < n; i++){
scanf("%d",&a[i]);
}
sort(a,a+n,cmp);
for(int i = 0;i < n; i++){
printf("%d",a[i]);
}
puts("");
}

int main()
{
#ifdef ARTHUR_YANG
freopen("in.txt", "r", stdin);
#endif // ARTHUR_YANG
while(~scanf("%d",&n)) {
solve();
}
return 0;
}

搞得不好也不用这么打击人吧……
402645707
2015-05-10 22:37:04 +08:00
表示Q5死活解不出来
zafkiel
2015-05-11 00:00:06 +08:00
q5暴力搜索我只会暴力搜索唉
zafkiel
2015-05-11 00:03:39 +08:00
q3直接用Java把
rushcheyo
2016-02-11 19:53:00 +08:00
这些题目……冬天太冷用来暖手的吧?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/189719

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX