avatar
S*6
2
一道很简单的leetcode 题目: Reverse Words in a String III
我的解法(c#)一直被报 Memory Limit Exceeded 错误。谁知道如何改进? 多谢了先
。:)
public class Solution {
public string ReverseStr(string str)
{
if(str.Length < 2) return str;
int i = str.Length-1;
string resS = null;
while(i >= 0)
{
resS += str[i--];
}
return resS;
}
public string ReverseWords(string s) {
string result = null;
if(s.Length < 2) return s;
int i = 0;
int idxS = 0;
while(i < s.Length)
{
while( idxS < s.Length && s[idxS] != ' ')
{
idxS++;
}

result += ReverseStr(s.Substring(i, idxS-i));

if(idxS != s.Length) result += ' ';
idxS++;
i = idxS;
}

return result;
}
}
avatar
p*g
3
达拉斯打进总决赛吧
我还能借个光,看眼去。。

【在 c*********k 的大作中提到】
: OKC和Dallas的球迷有福了,可以两边都看
avatar
y*u
4
这都搞不定,楼主没希望了, 不太适合刷题,干点别的吧
avatar
b*n
5
bso买的起总决赛的票

【在 p********g 的大作中提到】
: 达拉斯打进总决赛吧
: 我还能借个光,看眼去。。

avatar
t*r
6
别理2楼的,哪有人天生什么都会。多刷题,多问问题,多看文章,多写代码,自然就
会提高了。
我对c#不熟悉,但是看你的算法没啥问题,估计就是string拷贝的问题了。我改了一下
,用stringbuilder代替string,并且减少了不必要的拷贝,你看看吧。
public class Solution {
public string ReverseWords(string s) {
StringBuilder result = new StringBuilder();
if(s.Length < 2) return s;
int i = 0;
int idxS = 0;
while(i < s.Length)
{
while( idxS < s.Length && s[idxS] != ' ')
{
idxS++;
}

for (int j = idxS - 1; j >= i; j--) {
result.Append(s[j]);
}

if(idxS != s.Length) result.Append(' ');
idxS++;
i = idxS;
}

return result.ToString();
}
}
avatar
p*g
7
多少钱一张。。
200刀下的来不?

【在 b***n 的大作中提到】
: bso买的起总决赛的票
avatar
n*s
8
如果逻辑对的话,可能是边界没搞好,自己画个图或者debug一下
avatar
c*k
9
我觉得今年是小牛未来几年内拿总冠军的最佳时机了
错过了不知道要到啥时候了,哈
你总决赛的时候在dallas?

【在 p********g 的大作中提到】
: 达拉斯打进总决赛吧
: 我还能借个光,看眼去。。

avatar
n*s
10
这种面试人不允许你直接split然后掉个次序return?
avatar
c*k
11
差不多

【在 p********g 的大作中提到】
: 多少钱一张。。
: 200刀下的来不?

avatar
S*6
12
这个方法果然可以,多谢多谢!

【在 t*********r 的大作中提到】
: 别理2楼的,哪有人天生什么都会。多刷题,多问问题,多看文章,多写代码,自然就
: 会提高了。
: 我对c#不熟悉,但是看你的算法没啥问题,估计就是string拷贝的问题了。我改了一下
: ,用stringbuilder代替string,并且减少了不必要的拷贝,你看看吧。
: public class Solution {
: public string ReverseWords(string s) {
: StringBuilder result = new StringBuilder();
: if(s.Length < 2) return s;
: int i = 0;
: int idxS = 0;

avatar
p*g
13
开车过去啊。。

【在 c*********k 的大作中提到】
: 我觉得今年是小牛未来几年内拿总冠军的最佳时机了
: 错过了不知道要到啥时候了,哈
: 你总决赛的时候在dallas?

avatar
S*6
14
的确是因为自己写的code不够简练,不必要地占用了memory。多谢回复

【在 n*******s 的大作中提到】
: 如果逻辑对的话,可能是边界没搞好,自己画个图或者debug一下
avatar
p*g
15
200刀是哪个位置的。。

【在 c*********k 的大作中提到】
: 差不多
avatar
d*g
16
刷了几道了啊
[在 Sophie06 (Sophie) 的大作中提到:]
:的确是因为自己写的code不够简练,不必要地占用了memory。多谢回复
avatar
b*n
17
200刀,那得卖多少个打印机啊.....

【在 p********g 的大作中提到】
: 多少钱一张。。
: 200刀下的来不?

avatar
y*u
18
忠言逆耳,大家都不愿意听实话。楼主这个状态,水平的增长根本赶不上面试bar的增
长速度,与其花大力气做题,还不如figure something else

【在 t*********r 的大作中提到】
: 别理2楼的,哪有人天生什么都会。多刷题,多问问题,多看文章,多写代码,自然就
: 会提高了。
: 我对c#不熟悉,但是看你的算法没啥问题,估计就是string拷贝的问题了。我改了一下
: ,用stringbuilder代替string,并且减少了不必要的拷贝,你看看吧。
: public class Solution {
: public string ReverseWords(string s) {
: StringBuilder result = new StringBuilder();
: if(s.Length < 2) return s;
: int i = 0;
: int idxS = 0;

avatar
c*k
19
最便宜的票是在两边篮筐后面最后一排
我觉得既然去了,至少要坐到场地中间对应的位置吧,也是最后一排便宜

【在 p********g 的大作中提到】
: 200刀是哪个位置的。。
avatar
d*x
20
lz加油,天道酬勤,肯花时间,没有什么不可能的。
avatar
l*s
21
okc太吵了,我耳朵都聋了
avatar
s*g
22
string和stringbuilder的开销区别很大
不是简练的问题
这个基本功一定要掌握

【在 S******6 的大作中提到】
: 的确是因为自己写的code不够简练,不必要地占用了memory。多谢回复
avatar
u*u
23
刚开始都这样,多练习就好。
编程就是慢慢才上手
要多花时间就是了
avatar
s*r
24
你们太损了
慢慢来总会好的
avatar
S*6
25
多谢提醒。

【在 s**********g 的大作中提到】
: string和stringbuilder的开销区别很大
: 不是简练的问题
: 这个基本功一定要掌握

avatar
S*6
26
呵呵,多谢忠言逆耳。不过我还真有一种不撞南墙不回头的习惯。有时间就刷题玩儿玩
儿呗,呵呵。

【在 y**********u 的大作中提到】
: 忠言逆耳,大家都不愿意听实话。楼主这个状态,水平的增长根本赶不上面试bar的增
: 长速度,与其花大力气做题,还不如figure something else

avatar
S*6
27
非常感谢各位的友情提醒。忠言逆耳也好,提供更好的解决方法也罢,俺全部都接受。
在这里尤其要感谢 twinsclover ,其实我真的不太习惯用stringBuilder...
不过倒是真的提醒我应该加强基本功(细节把握)的练习。
avatar
S*6
28
周二到周四3天刷了25道。。。
需要加速了,呵呵。

【在 d*********g 的大作中提到】
: 刷了几道了啊
: [在 Sophie06 (Sophie) 的大作中提到:]
: :的确是因为自己写的code不够简练,不必要地占用了memory。多谢回复

avatar
b*l
29
你有芥末nb吗?那你咋不搞定呢?
一开始不学不问就天生会搞定一切?真芥末nb,干嘛不开发个比C#或者C++更牛的语言
呢?光知道瞎BB新手就nb地不得了了?嘿嘿!

【在 y**********u 的大作中提到】
: 这都搞不定,楼主没希望了, 不太适合刷题,干点别的吧
avatar
Q*F
30
要对lz多鼓励,从业中国人越多越好。
avatar
d*x
31
我看过不少职场新人开始很弱,经过努力得到质的飞跃的。来美国的一般资质都不会太
差的,只要肯努力,一切皆有可能。
士别三日当刮目相看,这三日里挥洒的当全是汗水。
lz加油!
avatar
c*e
32
这道题应该是任何语言的教科书都会有的一道例题。楼主那么辛苦码了那么多还出错,
干嘛不曲翻翻书,看些经典的CODE.
avatar
k*u
33
楼主加油吧!为什么要用C# 刷题? 能用C#的估计只有微软 和 不需要刷题的公司了
avatar
z*0
34
不会C#
不过利扣过不去好像会报那个case的,我一般就拿到IDE里写个test unit 设断点,一
点点跟到那个bug的地方再改
(我知道用IDE打死。。。。但是白板一行行看错误 一会我就神经错乱了。。。)
你也可以在IDE设断点 一点点跟 然后慢慢脱离IDE 比靠眼睛看找bug快一些
话说。。为啥你用C#刷题呢?
avatar
z*0
35
顺便 新手借宝地问问版上有经验的前辈,传闻说用Python code会被鄙视? 不知道真
假??
C++/Python新手在纠结到底拿哪个刷呢。。因为我都不熟悉,我用哪个都一样。。。
我担忧的是人家都说"没人'会'C++" 因为C++能问的东西太多太多,随便延伸一点都问
出花了~~ 可是我没用C++做过项目,就是学校 intro level的水平
但毕竟楼主这道题,用Python 一行就写完了。。。。
return ' '.join([sub.strip[::-1] for sub in s.strip().split(' ')])
谢谢!
avatar
z*0
36
顺便 新手借宝地问问版上有经验的前辈,传闻说用Python code会被鄙视? 不知道真
假??
C++/Python新手在纠结到底拿哪个刷呢。。因为我都不熟悉,我用哪个都一样。。。
我担忧的是人家都说"没人'会'C++" 因为C++能问的东西太多太多,随便延伸一点都问
出花了~~ 可是我没用C++做过项目,就是学校 intro level的水平
但毕竟楼主这道题,用Python 一行就写完了。。。。
return ' '.join([sub.strip[::-1] for sub in s.strip().split(' ')])
谢谢!
avatar
u*n
37
面试用Java
逼格高用Go
avatar
s*g
38
用java
我当时就是哪个都差不多,坚决用java学起
c++面试太容易掉坑里了
python真有面试官会挑的,一般好面试官不会有这问题,但这事儿看运气。我有朋友就
遇到过
java面试最好用

【在 z**********0 的大作中提到】
: 顺便 新手借宝地问问版上有经验的前辈,传闻说用Python code会被鄙视? 不知道真
: 假??
: C++/Python新手在纠结到底拿哪个刷呢。。因为我都不熟悉,我用哪个都一样。。。
: 我担忧的是人家都说"没人'会'C++" 因为C++能问的东西太多太多,随便延伸一点都问
: 出花了~~ 可是我没用C++做过项目,就是学校 intro level的水平
: 但毕竟楼主这道题,用Python 一行就写完了。。。。
: return ' '.join([sub.strip[::-1] for sub in s.strip().split(' ')])
: 谢谢!

avatar
z*0
39
感谢回复!
Java我觉得也很难。。。我的Java就是berkeley cs61B的水平,i.e. 基本语法的刷题
水平。
那些什么mvn 什么dependency 我都不知道从哪里开始入手! 学校曾经有个project做
安卓的,那一层层的src/../.../...的简直逼疯我。。。。。。
还有什么线程池 currentHashMap 之类Java独有的概念? (虽然C++ 11引入了并发的一
些操作)
哎。。。。

【在 u***n 的大作中提到】
: 面试用Java
: 逼格高用Go

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。