Redian新闻
>
Huawei Mediapad 8.4" M3 $219 at amazon
avatar
Huawei Mediapad 8.4" M3 $219 at amazon# PDA - 掌中宝
f*l
1
reverse string的变种。 只reverse word不reverse punctuation。比如 "this,,,is.
a word" -> "word,,,a.is this"
avatar
a*y
2
这是哪两位中国当代艺术家的作品?
avatar
b*7
3
之前用k88挺好的,但16G迅速装满了。在找一个32G的,看这个M3挺好。Amazon价格也
超好。
问题是!这是美版!其它Eu版,国际版,大陆版有的功能,这个没有!
1,没有5G,只有2.4G,据说是为了满足FCC要求!估计是不愿意花钱测试
2,没有选项升级到Android 7!!! 还是Android 6和EMUI4,太烂了。其它版本都OTA
升级。据说root后可以,但我不准备这样干
avatar
j*3
4
同问
avatar
x*m
5
bu zhi dao

【在 a****y 的大作中提到】
: 这是哪两位中国当代艺术家的作品?
avatar
d*e
6
split成两个list. reverse word list, merge.

is.

【在 f*********l 的大作中提到】
: reverse string的变种。 只reverse word不reverse punctuation。比如 "this,,,is.
: a word" -> "word,,,a.is this"

avatar
l*t
7
1.张晓刚《全家福》作品系列。
avatar
l*a
8
如果转成list的话,一个就够了
头尾两个index,swap string only and skip symbols

【在 d******e 的大作中提到】
: split成两个list. reverse word list, merge.
:
: is.

avatar
l*t
9
2.毛旭辉《剪刀》系列
avatar
d*e
10
这是c时代的做法。现在string都是immutable的。总之还要在复制出去,在复制回来。
不差那点代价了。
这题一般来说,不应该考。以前c程序用指针是重要技巧。现在基本没人用了。

【在 l*****a 的大作中提到】
: 如果转成list的话,一个就够了
: 头尾两个index,swap string only and skip symbols

avatar
a*y
11
惊叹三番版还有懂艺术的...
猫老应该看得懂这位朋友的博客了。
http://blog.sina.com.cn/u/1319417285

【在 l****t 的大作中提到】
: 2.毛旭辉《剪刀》系列
avatar
l*a
12
sorry , what I said is index of the list,not pointer
那你merge怎么考虑顺序呢
上code吧

【在 d******e 的大作中提到】
: 这是c时代的做法。现在string都是immutable的。总之还要在复制出去,在复制回来。
: 不差那点代价了。
: 这题一般来说,不应该考。以前c程序用指针是重要技巧。现在基本没人用了。

avatar
l*t
13
where where...
你忒客气了。
1.我老不是三藩版的。我老到处瞎逛的。
2.我老也不懂艺术。知道点杂七杂八的鸡零狗碎而已。
有个电影,《向日葵》主人公(张志刚)最后就借用了张晓刚的作品。

【在 a****y 的大作中提到】
: 惊叹三番版还有懂艺术的...
: 猫老应该看得懂这位朋友的博客了。
: http://blog.sina.com.cn/u/1319417285

avatar
f*l
14
大牛可以给个code吗?一直没写出来,谢谢!

【在 l*****a 的大作中提到】
: 如果转成list的话,一个就够了
: 头尾两个index,swap string only and skip symbols

avatar
l*t
15
嗯。居然在这个blog上听到小田和正。
avatar
r*o
16
O(N)原地没有办法解吧?
avatar
l*a
17
弄到一个string list里,然后再生成结果也写不出来吗?

【在 f*********l 的大作中提到】
: 大牛可以给个code吗?一直没写出来,谢谢!
avatar
l*a
18
in place的话就得移来移去,很费时间..

【在 r**o 的大作中提到】
: O(N)原地没有办法解吧?
avatar
l*s
19
双指针也可解,left找symbol,right找字符串,两个指针都扫描整个字符串。
avatar
f*l
20
我是说in place的写不出来

【在 l*****a 的大作中提到】
: 弄到一个string list里,然后再生成结果也写不出来吗?
avatar
f*l
21
写了一个用list的版本
public static String reverse(String s) {
List list = new ArrayList();
boolean word = Character.isLetter(s.charAt(0));
int i = 0, n = s.length(), start = 0;
while(i < n) {
char cur = s.charAt(i);
while(i < n && ((word&&Character.isLetter(cur)) || (!word&&
Character.isLetter(cur)))) {
++i;
}
list.add(s.substring(start, i));
start = i;
word = !word;
}
i = 0;
int j = list.size()-1;
while(i < j) {
if(!Character.isLetter(list.get(i).charAt(0))) {
++i;
continue;
}
if(!Character.isLetter(list.get(j).charAt(0))) {
--j;
continue;
}
String tmp = list.get(i);
list.set(i, list.get(j));
list.set(j, tmp);
++i;
--j;
}
StringBuilder res = new StringBuilder();
for(String e : list) res.append(e);
return res.toString();
}
avatar
r*o
22
不是原地的话这题还有啥point,我大可再弄个buffer然后原来string两头扫放进去不
就行了。。
avatar
d*e
23
如果是split到list.那么就是看regex split出两个还是一个lis的问题了。
如果split到一个list,if isword, 指针交换,
如果split到两个lists, merge splited word和 splitters.
python的话,
>>> re.split('(W+)', 'this,,,is.a word')
['this', ',,,', 'is', '.', 'a', ' ', 'word']
剩下的没有什么难度了。

【在 l*****a 的大作中提到】
: sorry , what I said is index of the list,not pointer
: 那你merge怎么考虑顺序呢
: 上code吧

avatar
u*l
24
c/c++的code好像不受欢迎:
#include
#include
using namespace std;
char* GetAlphabet(char* str) {
while ('\0' != *str && !((*str >= 'a' && *str <= 'z') || (*str >= 'A' &&
*str <= 'Z'))) {
++str;
}
return str;
}
char* GetOthers(char* str) {
while ((*str >= 'a' && *str <= 'z') || (*str >= 'A' && *str <= 'Z')) {
++str;
}
return str;
}
void Reverse(char* s, char* e) {
while (s < e) {
char c1 = *s;
char c2 = *e;
*s = c2;
*e = c1;
++s;
--e;
}
}
void Reverse(char* str) {
char* s = GetAlphabet(str);
while ('\0' != *s) {
char* e = GetOthers(s);
Reverse(s, e - 1);
s = GetAlphabet(e);
}
Reverse(str, s - 1);
}
int main() {
string str = "this,,,is.a word";
Reverse(const_cast(str.c_str()));
cout << str << endl;
return 0;
}
avatar
d*e
25
string你不可能写inplace的。
要是非要上效率的。就是两个指针,从尾部读word,从头部读sperator.
char[] char_arr = new char[len(s)];
int i = len(s) -1;
int j = 0;
// read word from end and save to char_arr
while (i > -1 && j < len(s)){
// read word from end and save to char_arr reverse
// read separtor from begin and save to char_arr
}
return new StringBuilder(char_arr).toString()

【在 f*********l 的大作中提到】
: 我是说in place的写不出来
avatar
l*a
26
我们都知道java的string 是immutable的
我们就是用string.toCharArray()转成字符数组...

【在 d******e 的大作中提到】
: string你不可能写inplace的。
: 要是非要上效率的。就是两个指针,从尾部读word,从头部读sperator.
: char[] char_arr = new char[len(s)];
: int i = len(s) -1;
: int j = 0;
: // read word from end and save to char_arr
: while (i > -1 && j < len(s)){
: // read word from end and save to char_arr reverse
: // read separtor from begin and save to char_arr
: }

avatar
l*s
27
C# Solution. Tested. 2-Pointer in space O(n) time
private string reverse(string s){
StringBuilder result = new StringBuilder();
for (int left = 0, right = s.Length - 1; left < s.Length || right >= 0;){
while (left < s.Length && !char.IsLetter(s[left]))
result.Append(s[left++]);
while (right >= 0 && !char.IsLetter(s[right]))
right--;
int newRight = right;
while (newRight > 0 && char.IsLetter(s[newRight - 1]))
newRight--;
if (newRight >= 0){
result.Append(s.Substring(newRight, right - newRight + 1));
right = newRight - 1;
}
while (left < s.Length && char.IsLetter(s[left]))
left++;
}
return result.ToString();
}

【在 l******s 的大作中提到】
: 双指针也可解,left找symbol,right找字符串,两个指针都扫描整个字符串。
avatar
l*a
28
你这个work???
第一遍单词保持原状,然后整个reverse
现在你的单词是reversed的吧? punction的位置似乎也不符合要求

【在 u**l 的大作中提到】
: c/c++的code好像不受欢迎:
: #include
: #include
: using namespace std;
: char* GetAlphabet(char* str) {
: while ('\0' != *str && !((*str >= 'a' && *str <= 'z') || (*str >= 'A' &&
: *str <= 'Z'))) {
: ++str;
: }
: return str;

avatar
d*e
29
我写的那段是不要 call tocharAarry
思路是allocate一块空间,然后从原来的string上读,然后交叉取词和sperators
merge入新的char array.

【在 l*****a 的大作中提到】
: 我们都知道java的string 是immutable的
: 我们就是用string.toCharArray()转成字符数组...

avatar
w*z
30
写code都不加comments?看别人code,猜别人思路太费神。

【在 l*****a 的大作中提到】
: 你这个work???
: 第一遍单词保持原状,然后整个reverse
: 现在你的单词是reversed的吧? punction的位置似乎也不符合要求

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