题目:LCR 182. 动态口令
某公司门禁密码使用动态口令技术。初始密码为字符串 password,密码更新均遵循以下步骤:
设定一个正整数目标值 target
将 password 前 target 个字符按原顺序移动至字符串末尾
请返回更新后的密码字符串。
示例 1:
输入: password = “s3cur1tyC0d3”, target = 4
输出: “r1tyC0d3s3cu”
思路:
1.可以使用push_back函数先将前面的字符串连到后面,再删除前面原本的字符串
2.可以使用局部反转
语法知识:
- password.push_back(password[i]); 是将password[i]压入password字符串的后面
- ==password.erase(0, target);==是将字符串password[0]-password[target]给删除
代码:
//方法一
class Solution {
public:
string dynamicPassword(string password, int target) {
int len = password.length();
for(int i=0;i<target;i++)
{
password.push_back(password[i]);
}
password.erase(0, target);
return password;
}
};
//方法2;
class Solution {
public:
string reverseLeftWords(string s, int n) {
n %= s.size();
// 翻转前n项
reverse(s.begin(), s.begin() + n);
// 翻转剩余项
reverse(s.begin()+n, s.end());
// 整体翻转
reverse(s.begin(), s.end());
return s;
}
};
文章介绍了如何使用动态口令技术更新门禁密码,通过将指定位置的字符移动到字符串末尾,提供两种方法的代码实现,包括使用`push_back`和局部反转操作。
5451

被折叠的 条评论
为什么被折叠?



