首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

2025-02-22:找出加密后的字符串。用go语言,给定一个字符串 s 和一个整数 k,请使用以下方法对字符串进行加密: 对于

2025-02-22:找出加密后的字符串。用go语言,给定一个字符串 s 和一个整数 k,请使用以下方法对字符串进行加密:

对于字符串 s 中的每个字符 c,将其替换为在字符串中 c 后面的第 k 个字符(以循环的方式进行)。

最终返回加密后的字符串。

1 <= s.length <= 100。

1 <= k <= 10000。

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 个位置,但是超过字符串长度时需要循环移动,所以取模是必要的。在这个例子中,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 main

import"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 {

  letlen = s.len();

  letk = k % len; // 计算有效的 k 值

  let (first, second) = s.split_at(k);

  format!("{}{}", second, first) // 组合新的字符串

}

fnmain() {

  lets = "dart";

  letk = 3;

  letresult = 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()

在这里插入图片描述引用链接

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OsT0AMWehLy1r7_17W8rStOg0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券