1528. 重新排列字符串 ( 抽屉原理 )
作者:互联网
LeetCode: 1528. 重新排列字符串
抽屉原理
将各个数安排回到自己坑位。
之前的题目中是放回自己位置的时候, 可能已经存在对的数了,就不需要继续交换。
// 如果下一个交换的数不是已经找到坑位的, 就继续交换
while nums[nums[i] - 1] != nums[i]
AC Code
class Solution {
public String restoreString(String s, int[] indices) {
// 抽屉原理
char[] cs = s.toCharArray();
int len = cs.length;
for(int i = 0; i < len; i++){
while(indices[i] != i){
int tmp = indices[i];
char c = cs[i];
indices[i] = indices[tmp];
cs[i] = cs[tmp];
indices[tmp] = tmp;
cs[tmp] = c;
}
}
return new String(cs);
}
}
其他抽屉原理的题, 在主页搜索博客文章就行
标签:tmp,String,nums,int,1528,indices,重新排列,cs,抽屉 来源: https://blog.csdn.net/qq_43765535/article/details/111587598