Java解决动态口令问题
01 题目
某公司门禁密码使用动态口令技术。初始密码为字符串 password
,密码更新均遵循以下步骤:
- 设定一个正整数目标值
target
- 将
password
前target
个字符按原顺序移动至字符串末尾
请返回更新后的密码字符串。
示例 1:
输入: password = "s3cur1tyC0d3", target = 4
输出: "r1tyC0d3s3cu"
示例 2:
输入: password = "lrloseumgh", target = 6
输出: "umghlrlose"
提示:
1 <= target < password.length <= 10000
02 知识点
- 拼接
- 字符数组
03 我的题解
public class shuanzhizhen01 {public static void main(String[] args) {System.out.println(dynamicPassword("lrloseumgh", 6));}public static String dynamicPassword(String password, int target) {// 这里我采用char数组+循环的方式解题char[] chars=password.toCharArray();
// 用于接收的新数组char[] string=new char[chars.length];
// 两个指针用于记录数据int l=0;int r=target;for (int i = 0; i < chars.length; i++) {if (i<chars.length-target) {string[i]=chars[r];r++;}else {string[i]=chars[l];l++;}}
// 将char数组转化回字符串String s=String.valueOf(string);return s;}
}