当前位置: 首页 > news >正文

门户网站建设 总结红河公司 网站建设

门户网站建设 总结,红河公司 网站建设,php文件怎么打开,网站开发app开发主营业务【LetMeFly】3335.字符串转换后的长度 I:I先递推 力扣题目链接:https://leetcode.cn/problems/total-characters-in-string-after-transformations-i/ 给你一个字符串 s 和一个整数 t,表示要执行的 转换 次数。每次 转换 需要根据以下规则替…

【LetMeFly】3335.字符串转换后的长度 I:I先递推

力扣题目链接:https://leetcode.cn/problems/total-characters-in-string-after-transformations-i/

给你一个字符串 s 和一个整数 t,表示要执行的 转换 次数。每次 转换 需要根据以下规则替换字符串 s 中的每个字符:

  • 如果字符是 'z',则将其替换为字符串 "ab"
  • 否则,将其替换为字母表中的下一个字符。例如,'a' 替换为 'b''b' 替换为 'c',依此类推。

返回 恰好 执行 t 次转换后得到的字符串的 长度

由于答案可能非常大,返回其对 109 + 7 取余的结果。

 

示例 1:

输入: s = "abcyy", t = 2

输出: 7

解释:

  • 第一次转换 (t = 1)
    <ul><li><code>'a'</code> 变为 <code>'b'</code></li><li><code>'b'</code> 变为 <code>'c'</code></li><li><code>'c'</code> 变为 <code>'d'</code></li><li><code>'y'</code> 变为 <code>'z'</code></li><li><code>'y'</code> 变为 <code>'z'</code></li><li>第一次转换后的字符串为:<code>"bcdzz"</code></li>
    </ul>
    </li>
    <li><strong>第二次转换 (t = 2)</strong>
    <ul><li><code>'b'</code> 变为 <code>'c'</code></li><li><code>'c'</code> 变为 <code>'d'</code></li><li><code>'d'</code> 变为 <code>'e'</code></li><li><code>'z'</code> 变为 <code>"ab"</code></li><li><code>'z'</code> 变为 <code>"ab"</code></li><li>第二次转换后的字符串为:<code>"cdeabab"</code></li>
    </ul>
    </li>
    <li><strong>最终字符串长度</strong>:字符串为 <code>"cdeabab"</code>,长度为 7 个字符。</li>
    

示例 2:

输入: s = "azbk", t = 1

输出: 5

解释:

  • 第一次转换 (t = 1)
    <ul><li><code>'a'</code> 变为 <code>'b'</code></li><li><code>'z'</code> 变为 <code>"ab"</code></li><li><code>'b'</code> 变为 <code>'c'</code></li><li><code>'k'</code> 变为 <code>'l'</code></li><li>第一次转换后的字符串为:<code>"babcl"</code></li>
    </ul>
    </li>
    <li><strong>最终字符串长度</strong>:字符串为 <code>"babcl"</code>,长度为 5 个字符。</li>
    

 

提示:

  • 1 <= s.length <= 105
  • s 仅由小写英文字母组成。
  • 1 <= t <= 105

解题方法:递推

使用一个长为26的数组记录每个字符当前分别有多少次。

然后进行 t t t次模拟:

首先记下z的出现次数;

接着从ya遍历,将cnt[i]赋值给cnt[i + 1];

最后令cnt[0] := zcnt[1] += zans += z(这是因为没轮操作z会变成ab,同时字符串长度会加一)

  • 时间复杂度 O ( l e n ( s ) ⋅ C ) O(len(s)\cdot C) O(len(s)C),其中 C = 26 C=26 C=26
  • 空间复杂度 O ( C ) O(C) O(C)

AC代码

C++
/** @Author: LetMeFly* @Date: 2025-05-13 09:02:15* @LastEditors: LetMeFly.xyz* @LastEditTime: 2025-05-13 09:15:09* @Description: 3335: AC,92.65%,98.53%*/
const int MOD = 1e9 + 7;class Solution {
public:int lengthAfterTransformations(string s, int t) {int cnt[26] = {0};for (char c : s) {cnt[c - 'a']++;}int ans = s.size();while (t--) {int z = cnt[25];for (int i = 24; i >= 0; i--) {  // 这里必须从后往前cnt[i + 1] = cnt[i];}cnt[0] = z;cnt[1] = (cnt[1] + z) % MOD;ans = (ans + z) % MOD;// debug(cnt);}return ans;}
};
Python
'''
Author: LetMeFly
Date: 2025-05-13 09:02:15
LastEditors: LetMeFly.xyz
LastEditTime: 2025-05-13 09:18:14
'''
MOD = 1000000007class Solution:def lengthAfterTransformations(self, s: str, t: int) -> int:cnt = [0] * 26for c in s:cnt[ord(c) - 97] += 1ans = len(s)for _ in range(t):z = cnt[-1]for i in range(24, -1, -1):cnt[i + 1] = cnt[i]cnt[0] = zcnt[1] = (cnt[1] + z) % MODans = (ans + z) % MODreturn ans
Java
/** @Author: LetMeFly* @Date: 2025-05-13 09:02:15* @LastEditors: LetMeFly.xyz* @LastEditTime: 2025-05-13 09:19:43*/class Solution {private final int MOD = 1000000007;public int lengthAfterTransformations(String s, int t) {int[] cnt = new int[26];for (int i = 0; i < s.length(); i++) {cnt[s.charAt(i) - 'a']++;}int ans = s.length();while (t-- > 0) {int z = cnt[25];for (int i = 24; i >= 0; i--) {cnt[i + 1] = cnt[i];}cnt[0] = z;cnt[1] = (cnt[1] + z) % MOD;ans = (ans + z) % MOD;}return ans;}
}
Go
/** @Author: LetMeFly* @Date: 2025-05-13 09:02:15* @LastEditors: LetMeFly.xyz* @LastEditTime: 2025-05-13 09:28:34*/
package mainvar MOD3351 = 1000000007func lengthAfterTransformations(s string, t int) int {cnt := make([]int, 26)for i := 0; i < len(s); i++ {cnt[s[i] - 'a']++}ans := len(s)for i := 0; i < t; i++ {z := cnt[25]for j := 24; j >= 0; j-- {cnt[j + 1] = cnt[j]}cnt[0] = zcnt[1] = (cnt[1] + z) % MOD3351ans = (ans + z) % MOD3351}return ans
}

同步发文于CSDN和我的个人博客,原创不易,转载经作者同意后请附上原文链接哦~

千篇源码题解已开源

http://www.dtcms.com/a/603562.html

相关文章:

  • 旅行社网站设计方案高端网站建设步骤
  • 免费网站制作网站源码兴义市 网站建设
  • 深圳设计品牌网站开发公司综合部内部管理章程
  • 冀州网站建设工程项目建设网站
  • 建电子商务网站注意事项平度网站建设公司
  • 福州网页模板建站wordpress移机
  • 网站地图怎么做的宁波住房和城乡建设网
  • 做一个打鱼网站需要多少钱交换链接的作用
  • XP系统C语言编译器 | 适合初学者的C语言开发环境搭建与使用
  • 浙江省网站建设公司排名北京网站制作建设公司
  • 国内十大网站建设公司排名外贸看的英文网站
  • 供需网站开发公司的网站如何编辑
  • 局域网内建网站四川省城乡建设网查询
  • 如果建网站怎么查看网站哪个公司做的
  • 惠州网站建设制作价格网站建设学生选课系统
  • 门户网站管理流程南县做网站
  • 网站制作网址wordpress serene
  • C语言程序编译软件 | 提升编译效率与稳定性
  • 太原模板网站建站济南建设信用网网站
  • 做家政的在哪些网站推广常用的关键词优化策略有哪些
  • 平原网站建设费用网站seo优化教程
  • 网上的网站模板怎么下载电子商务网站建设论文总结
  • 做医药商城网站的公司学校英语网站栏目名称
  • 建筑公司网站起名什么是网站死链
  • wordpress后台仅显示当前主题seo博客网站
  • 做网站不懂行情 怎么收费thinkphp做企业网站
  • 自助购物网站怎么做自建站什么意思
  • c++和python哪个简单
  • 不错的网站建设公司伍壹捌网站建设
  • 做个网站多少钱 百度能查到的移动网站推广如何优化