package
0.0.0-20240429050328-3be44a187b12
Repository: https://github.com/robertwang/golang_study.git
Documentation: pkg.go.dev

# README

2024-01-18 练习题

来源 : 2024-01-18 Python 每日一练-LeetCode-字符串练习-动态密码

题目说明

某公司门禁密码使用动态口令技术。初始密码为字符串 password,密码更新均遵循以下步骤:

  • 设定一个正整数目标值 target
  • 将 password 前 target 个字符按原顺序移动至字符串末尾
  • 返回更新后的密码字符串

示例说明

示例 1:

输入: password="s3cur1tyC0d3",target=4

输出: "r1tyC0d3s3cu"

示例 2:

输入: password="Irloseumgh",target=6

输出: "umghlrlose"

🔑 参考:

分析

输入原始密码和 target

将原始密码字符串的前 target 个字符通过切片移到最后, 原始字符的从 target 索引往后的切片移到开始即可.

参考代码

Golang 代码实现

package main

import (
	"fmt"
)

type PasswordData struct {
	Password string
	Target   int
}

func main() {
	data := PasswordData{Password:"s3cur1tyC0d3", Target:4}
	fmt.Println("初始数据", data)

	solution(data.Password, data.Target)
}

// 解决方案
func solution(password string, target int) {
	result := password[target:] + password[:target]
	fmt.Println(result)
}

Python 代码实现

password = input("enter origin password:")
target = int(input("enter target number:")
print(f"new password:{password[target:]+password[:target]}")
enter origin password: s3curitycod3
enter target number: 4
new password: r1tycod3s3cu