leetcode 344. 反转字符串

47 篇文章 0 订阅
38 篇文章 1 订阅

编写一个函数,其作用是将输入的字符串反转过来。

示例 1:

输入: "hello"
输出: "olleh"

示例 2:

输入: "A man, a plan, a canal: Panama"
输出: "amanaP :lanac a ,nalp a ,nam A"

思路一:由于昨天刚学到集合与框架中的 Collections 中可以将 ArrayList 的元素反转,所只需将字符串使用 toCharArray 的方法转换为字符数组,然后加入到 ArrayList 中,使用工具类反转,然后将再转换回来即可。

注意:字符数组转换成字符串可使用:

 

  1. new String(char[] a);
  2. String.valueOf(char[] a);
class Solution {
    public String reverseString(String s) {
        char[] a = s.toCharArray();
		List<Character> list = new ArrayList<>();
		for(char i:a) {
			list.add(i);
		}
		Collections.reverse(list);
		for(int i = 0;i < a.length;i++) {
			a[i] = list.get(i);
		}
		return String.valueOf(a);
    }
}

思路二:还是讲字符串转换为字符数组后,在原地置换,利用两个指针,一个从数组头开始自增,一个从数组为尾自减,知道两个相遇,利用交换两个代表的数组的元素,最后转换为字符串。

class Solution {
    public String reverseString(String s) {
       if(s == "") {
			return null;
		}
		char[] a = s.toCharArray();
		char temp;
		int l = 0,r = a.length-1;
		while(l < r) {
			temp = a[l];
			a[l] = a[r];
			a[r] = temp;
			l++;
			r--;
		}
		return new String(a);
    }
}

 思路三:利用额外的数组,进行保留交换。

class Solution {
    public String reverseString(String s) {
        char[] chars = s.toCharArray();
        char[] newString = new char[chars.length];
        for (int i = chars.length - 1, t = 0; i >= 0; i--, t++) {
            newString[t] = chars[i];
        }
        return new String(newString);
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值