1528-重新排列字符串

重新排列字符串

  1. 我第一次做法

        public String restoreString(String s, int[] indices) {
            if (s == null || indices == null) {
                return null;
            }
    
            char[] result = new char[indices.length];
            for (int i = 0; i < indices.length; i++) {
                result[indices[i]] = s.charAt(i);
            }
    
            return String.valueOf(result);
        }
    
  2. 其他解法

     public static String restoreString1(String s, int[] indices) {
            if (s == null || indices == null) {
                return null;
            }
    
            char[] chars = s.toCharArray();
            for (int i = 0; i < chars.length; i++) {
                if (i != indices[i]) {
                    int targetIndex = indices[i];
                    char tmp = chars[targetIndex];
                    chars[targetIndex] = chars[i];
                    chars[i] = tmp;
    
                    int tmp2 = indices[targetIndex];
                    indices[targetIndex] = indices[i];
                    indices[i] = tmp2;
    
                    // 由于替換完成后,并不能確定,再繼續(xù)執(zhí)行遍歷會(huì)將剩余的元素完全替換,則重置便利游標(biāo)
                    // 舉例: "aiohn" {3,1,4,2,0}
                    i=0;
                }
            }
    
            return String.valueOf(chars);
        }
    
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容