2025-02-22:找出加密后的字符串。用go道话,给定一个字符串 s 和一个整数 k,请使用以下设施对字符串进行加密:
关于字符串 s 中的每个字符 c,将其替换为在字符串中 c 背面的第 k 个字符(以轮回的姿色进行)。
最终复返加密后的字符串。
1
1
s 仅由小写英笔墨母构成。
输入: s = "dart", k = 3。
输出: "tdar"。
解说:
关于 i = 0,'d' 背面的第 3 个字符是 't'。
关于 i = 1,'a' 背面的第 3 个字符是 'd'。
关于 i = 2,'r' 背面的第 3 个字符是 'a'。
关于 i = 3,'t' 背面的第 3 个字符是 'r'。
谜底2025-02-22:
chatgpt[1]
题目来自leetcode3210。
大体设施如下:
1.给定输入字符串 s="dart" 和整数 k=3。
2.有计划 k 对字符串长度的取模,因为每个字符需要向后转移 k 个位置,ag百家乐官网然而超越字符串长度时需要轮反转移,是以取模是必要的。在这个例子中,k % len(s) = 3 % 4 = 3。
3.将字符串分红两部分:s[k:] 暗意从第 k 个字符到末尾的子字符串("t"),s[:k] 暗意从来源到第 k-1 个字符的子字符串("dar")。
4.加密后的字符串是这两部分连合起来的效果,即 "t" + "dar" = "tdar"。
合座时候复杂度:
• 有计划 k % len(s) 的时候复杂度是 O(1)。
• 字符串的连合操作的时候复杂度为 O(n),n 是字符串的长度。
是以总的时候复杂度为 O(1) + O(n) = O(n)。
出奇空间复杂度:
• 除了存储输入字符串 s 和整数 k 的空间外,需要存储两个子字符串 s[k:] 和 s[:k],它们的长度差异为 len(s) - k 和 k。
• 加密后的字符串需要存储,长度为 len(s)。
是以总的出奇空间复杂度是 O(n)。
Go齐全代码如下:
package mainimport "fmt"func getEncryptedString(s string, k int) string { k %= len(s) return s[k:] + s[:k]}func main { s := "dart" k := 3 result := getEncryptedString(s, k) fmt.Println(result)}
在这里插入图片形色
Rust齐全代码如下:
fn get_encrypted_string(s: &str, k: usize) -> String { let len = s.len; let k = k % len; // 有计划有用的 k 值 let (first, second) = s.split_at(k); format!("{}{}", second, first) // 组合新的字符串}fn main { let s = "dart"; let k = 3; let result = get_encrypted_string(s, k); println!("{}", result);}
在这里插入图片形色
Python齐全代码如下:
# -*-coding:utf-8-*-def get_encrypted_string(s: str, k: int) -> str: k %= len(s) # 有计划有用的 k 值 return s[k:] + s[:k] # 组合新的字符串def main: s = "dart" k = 3 result = get_encrypted_string(s, k) print(result)if __name__ == "__main__": main
在这里插入图片形色
援用连合
[1] chatgpt: https://chatbotsplace.com/?rc=nnNWSCJ7EPag真人百家乐真假