Redian新闻
>
Amazon Payment在Citi Forward里算Service
avatar
Amazon Payment在Citi Forward里算Service# Money - 海外理财
l*h
1
最最经典和简单的一个java面试题,要求占用最少的内存和最好的算反。
我能想出至少3种方法,但是不知道那种最好。
Reverse words in a string. Example: AA BBB cccc -> cccc BBB AA
不允许用java.util
我知道的:
1)String.Split
2) Pattern
3)StringBuffer.reverse
请大牛问问有啥最好的算法并前占用最少的内存
avatar
m*a
2
FYI, 亲自试验的结果,归类划到"Services"里,所以自然没有5pt/dollar,只是1pt/dollar。
avatar
l*h
3
ding
avatar
d*8
4
but it is purchase~

【在 m*****a 的大作中提到】
: FYI, 亲自试验的结果,归类划到"Services"里,所以自然没有5pt/dollar,只是1pt/dollar。
avatar
i*e
5
The idea is simple but subtle. This trick is discussed in Programming Pearls.
Reverse the entire string.
Then reverse the characters for each individual word.
一些常见面试题的答案与总结 -
http://www.ihas1337code.com
avatar
c*7
6
Amazon payment那个卡都不会多给点数。也就Fia Amex的2%最好。
avatar
j*u
7
不了解Java,在.NET里,string是immutable的,也就意味着除非传入的parameter是
StringBuilder,return之前至少要copy一次
如果你用了string.Split然后再reverse,construct new string至少memory copy了2次
StringBuilder/StringBuffer做in-place reverse(i.e. reverse whole string then
reverse each word),memory只copy了1次
假设StringBuilder/StringBuffer的ToString都没有allocate new memory
avatar
A*n
8
Amazon payment能上visa/mastercard/AMEX GC么?

【在 c*********7 的大作中提到】
: Amazon payment那个卡都不会多给点数。也就Fia Amex的2%最好。
avatar
l*h
9
对不起,我没有说明白。
以上3步是3中不同的解法,不是按顺序的。任何一种方法都可以直接reverse.我只是列
出了我知道的几种方法。
avatar
d*8
10
i just use AP for promotion, such as spend $4000 within 3 months~

【在 c*********7 的大作中提到】
: Amazon payment那个卡都不会多给点数。也就Fia Amex的2%最好。
avatar
j*u
11
I think lz asks the string operations in Java, which is different with C/C++
since Java/.NET string is immutable - means mem copy cannot be avoided
anyway.

Pearls.

【在 i**********e 的大作中提到】
: The idea is simple but subtle. This trick is discussed in Programming Pearls.
: Reverse the entire string.
: Then reverse the characters for each individual word.
: 一些常见面试题的答案与总结 -
: http://www.ihas1337code.com

avatar
d*8
12
yes, u can, but AP will hold $1 for one week~

【在 A********n 的大作中提到】
: Amazon payment能上visa/mastercard/AMEX GC么?
avatar
h*3
13
IDK how pattern is implementted.
1) String.split copy each substring to temporary buffer, deal with each one,
copy all of them back to one string.
2) the implementation of StringBuffer.reverse might be as efficient as the
solution mentioned in PIE. The only question is that we might not be able to
use it when interviewed.

【在 l********h 的大作中提到】
: 最最经典和简单的一个java面试题,要求占用最少的内存和最好的算反。
: 我能想出至少3种方法,但是不知道那种最好。
: Reverse words in a string. Example: AA BBB cccc -> cccc BBB AA
: 不允许用java.util
: 我知道的:
: 1)String.Split
: 2) Pattern
: 3)StringBuffer.reverse
: 请大牛问问有啥最好的算法并前占用最少的内存

avatar
c*t
14
re这个,我选StringBuilder.reverse

2次
then

【在 j*****u 的大作中提到】
: 不了解Java,在.NET里,string是immutable的,也就意味着除非传入的parameter是
: StringBuilder,return之前至少要copy一次
: 如果你用了string.Split然后再reverse,construct new string至少memory copy了2次
: StringBuilder/StringBuffer做in-place reverse(i.e. reverse whole string then
: reverse each word),memory只copy了1次
: 假设StringBuilder/StringBuffer的ToString都没有allocate new memory

avatar
s*3
15
就是K&R书上的一道题。
avatar
c*t
16
In this case, do you think creating a character array and using split
reverse will be the best answer? complexity n/2?
For LZ's case, because the question only required no java.util, I think he
might be able to use StringBuilder/StringBuffer.

one,
to

【在 h******3 的大作中提到】
: IDK how pattern is implementted.
: 1) String.split copy each substring to temporary buffer, deal with each one,
: copy all of them back to one string.
: 2) the implementation of StringBuffer.reverse might be as efficient as the
: solution mentioned in PIE. The only question is that we might not be able to
: use it when interviewed.

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