天天看點

【每日一題】【雙指針、位運算】2022年2月3日-NC103 反轉字元串

描述

寫出一個程式,接受一個字元串,然後輸出該字元串反轉後的字元串。(字元串長度不超過1000)

【每日一題】【雙指針、位運算】2022年2月3日-NC103 反轉字元串

答案:雙指針

import java.util.*;


public class Solution {
    /**
     * 反轉字元串
     * @param str string字元串 
     * @return string字元串
     */
    public String solve (String str) {
        int left = 0, right = str.length() - 1;
        int mid = left + (right - left) >> 1;
        char[] arr = str.toCharArray();
        while(left != right && left <= mid && right >= mid) {
            arr[left] ^= arr[right];
            arr[right] ^= arr[left];
            arr[left] ^= arr[right];
            left++;
            right--;
        }
        return new String(arr);
    }
}