某公司门禁密码使用动态口令技术。初始密码为字符串 password
,密码更新均遵循以下步骤:
target
password
前 target
个字符按原顺序移动至字符串末尾请返回更新后的密码字符串。
示例 1:
输入: password = "s3cur1tyC0d3", target = 4
输出: "r1tyC0d3s3cu"
示例 2:
输入: password = "lrloseumgh", target = 6
输出: "umghlrlose"
提示:
1 <= target < password.length <= 10000
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;
}
}