思路:
使用一左一右指针,从两边向中间走;
当数组元素个数为偶数时,left和right指针为一对,直到反转完成;
当元素个数为奇数,中间多出来的一个则无需再跟其他元素交换,所以while 条件是left<right
Java实现:
class Solution {
public void reverseString(char[] s) {
int left=0;
int right=s.length-1;
while(left<right){
char tem=s[left];
s[left]=s[right];
s[right]=tem;
left++;
right--;
}
}
}
ACM模式:
读取到String,切分为字符串数组进行操作(String字符串是不可变的,不能直接charAt改变字符串),
最后使用StringBuilder追加数组元素,并转换为String输出;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
String s=in.readLine();
String[] s1=s.split("");
int i=0;
int j=s1.length-1;
while(i<j){
String t=s1[i];
s1[i]=s1[j];
s1[j]=t;
i++;
j--;
}
StringBuilder r=new StringBuilder();
for(String k:s1){
r.append(k);
}
System.out.println(r.toString());
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/89300.html