返回信息流已解决,多谢暖神。
题目是这样的:
Write a function that takes a string as input and returns the string reversed.
Example:
Given s = "hello", return "olleh".
看上去很简单,然后写了这样的代码:
public String reverseString(String s) {
String reverse="";
char[] strChar=s.toCharArray();
for(int i=strChar.length-1;i>=0;i--)
{
reverse+=strChar[i];
}
return reverse;
}
结果超时......
试验了好几种不同的思路,结果都是超时......
结合c++的解题思路,使用反射,写了这样的代码:
public String reverseString2(String s) {
int left = 0;
int right = s.length() - 1;
try{
//获取String类中的value字段
Field valueFieldOfString = String.class.getDeclaredField("value");
//改变value属性的访问权限
valueFieldOfString.setAccessible(true);
//获取s对象上的value属性的值
char[] value = (char[]) valueFieldOfString.get(s);
while (left<right)
{
char temp=value[left];
value[left]=value[right];
value[right]=temp;
left++;
right--;
}
}
catch(Exception e)
{}
return s;
}
本地运行可以得到反转的字符串,如下图:
可是在leetcode上,运行后,字符串完全没变化,如下图:
已经不知道要怎么办了[ema1],求java的解题思路[ema0]
这是一条镜像帖。来源:北邮人论坛 / java / #49604同步于 2016/4/22
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
已解决 leetcode344求思路
meiyouid
2016/4/22镜像同步36 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
谢暖神,我去好好研读一下。
【 在 nuanyangyang 的大作中提到: 】
: http://stackoverflow.com/questions/7569335/reverse-a-string-in-java
我觉得这个问题是要自己把那一行代码实现出来...
ps:完全不懂python...
【 在 chenxiansf 的大作中提到: 】
: python只要一行代码
: return s[::-1]
:
java要两行
StringBuffer p = new StringBuffer(s);
return p.reverse().toString();
要自己写反转啊,好难啊
【 在 meiyouid 的大作中提到: 】
: 我觉得这个问题是要自己把那一行代码实现出来...
: ps:完全不懂python...
不可以return new StringBuffer(s).reverse().toString();吗?
【 在 chenxiansf 的大作中提到: 】
: java要两行
: StringBuffer p = new StringBuffer(s);
: return p.reverse().toString();
: ...................
对哦,好像可以的
【 在 meiyouid (【意涵团】kid||求offer) 的大作中提到: 】
: 不可以return new StringBuffer(s).reverse().toString();吗?