-
我第一次做法
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); }
-
其他解法
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; // 由于替换完成后,并不能确定,再继续执行遍历会将剩余的元素完全替换,则重置便利游标 // 举例: "aiohn" {3,1,4,2,0} i=0; } } return String.valueOf(chars); }
1528-重新排列字符串
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 直接上代码 #####################生成神经网络模型和训练部分的代码##############...
- 前言 最先接触编程的知识是在大学里面,大学里面学了一些基础的知识,c语言,java语言,单片机的汇编语言等;大学毕...
- 子序列顺序不能变 输入: abc 输出: // 第一个是空串 c b bc a ac ab abc 代码: pub...