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

做一份网站的步zou十大暗网搜索引擎

做一份网站的步zou,十大暗网搜索引擎,做商城网站在哪里注册营业执照,wordpress alipay充值“生活并不照顾那些表现得过于疲惫的人。” ——弗里德里希尼采 题目 给你一个由小写英文字母组成的字符串 s,一个整数 t 表示要执行的 转换 次数,以及一个长度为 26 的数组 nums。每次 转换 需要根据以下规则替换字符串 s 中的每个字符: 将…

“生活并不照顾那些表现得过于疲惫的人。” ——弗里德里希·尼采

题目

给你一个由小写英文字母组成的字符串 s,一个整数 t 表示要执行的 转换 次数,以及一个长度为 26 的数组 nums。每次 转换 需要根据以下规则替换字符串 s 中的每个字符:

  • 将 s[i] 替换为字母表中后续的 nums[s[i] - 'a'] 个连续字符。例如,如果 s[i] = 'a' 且 nums[0] = 3,则字符 'a' 转换为它后面的 3 个连续字符,结果为 "bcd"
  • 如果转换超过了 'z',则 回绕 到字母表的开头。例如,如果 s[i] = 'y' 且 nums[24] = 3,则字符 'y' 转换为它后面的 3 个连续字符,结果为 "zab"

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

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

难度:困难

分析

我们可以用一个长度为26的数组存储每种字符的个数,每次操作都更改了每种字符的个数,由于此题数据量较大,暴力模拟会超时,因此我们考虑使用矩阵进行运算。我们把统计字符的数据当作一个1*n的矩阵,因为转换规则不变,所以每次操作都是乘上一个相同的n*n的矩阵,我们可以更改运算顺序,先计算n*n的矩阵的t次幂再和1*n的矩阵相乘得到结果。我们可以参照快速幂的思想实现矩阵快速幂(见代码)。

解答

class Solution {public int lengthAfterTransformations(String s, int t, List<Integer> nums) {long[] count=new long[26];final int MOD=1000000007;for (int i=0;i<s.length();i++){count[s.charAt(i)-'a']++;}long[][] matrix=new long[26][26];for (int i=0;i<26;i++){for (int j=1;j<=nums.get(i);j++){int index=(i+j)%26;matrix[i][index]=1;}}// count * matrix t次 count中的值需要MOD// matrix t次快速幂matrix = rapid(matrix,t,MOD);long[] temp=new long[26];for (int i=0;i<26;i++){for (int j=0;j<26;j++){temp[i]=(temp[i]+count[j]*matrix[j][i])%MOD;}}count=temp;long ans=0;for (int i=0;i<26;i++){ans=(ans+count[i])%MOD;}return (int)ans;}private long[][] rapid(long[][] matrix, int t, int MOD){int n=matrix.length;long[][] ans=new long[n][n];for (int i=0;i<n;i++){ans[i][i]=1;}while (t>0){if ((t&1)==1){ans=multiply(ans,matrix,MOD);}matrix=multiply(matrix,matrix,MOD);t>>=1;}return ans;}private long[][] multiply(long[][] m1, long[][] m2, int MOD){int n=m1.length;long[][] ans=new long[n][n];for (int i=0;i<n;i++){for (int j=0;j<n;j++){for (int k=0;k<n;k++){ans[i][j]=(ans[i][j]+m1[i][k]*m2[k][j])%MOD;}}}return ans;}
}

“求知若渴,虚心若愚。”——史蒂夫·乔布斯

http://www.dtcms.com/wzjs/278400.html

相关文章:

  • 上饶网站网站建设近期网络营销的热点事件
  • access做网站数据方法网站推广方案策划
  • 免版权费自建网站搜盘 资源网
  • 网站建设翻译英文是什么760关键词排名查询
  • 网站背景音乐百度一下搜索网页
  • 有没有人通过网站建设卖东西的重庆网站推广联系方式
  • 易讯网络网站建设谷歌google官方网站
  • 网站建设 .北京蓝纤网站收录查询网
  • wordpress 开启rssseo公司seo教程
  • 企业网站建设小技巧有哪些网址怎么申请注册
  • 建局域网网站百度统计代码
  • 专业机票网站建设百度网站搜索排名
  • 企业网站设计分析百度搜索引擎优化详解
  • 免费自助建设网站seo和sem是什么意思啊
  • 做外贸没有企业网站seo专员是指什么意思
  • 购物网站排名女装谷歌seo外链平台
  • 网站建设程序开发过程凡科网免费建站
  • 淄博学校网站建设方案seo内部优化方案
  • 做电器推广的网站上海关键词seo
  • 视频网站费用在线培训系统平台
  • wordpress中文模板下载给网站做seo的价格
  • 国外建站工具网络推广需要什么
  • .wordpress什么是seo技术
  • 常州网站建设关键词林俊杰mp3在线听
  • 网站空间 php长沙seo就选智优营家
  • 做网站接活犯法吗免费b站软件下载
  • 用python做网站多吗合肥网站优化
  • 可以做网站的编程有什么seo咨询顾问
  • 做胃镜需那好天津津门网站A百度人工申诉客服电话
  • 做网赌网站怎么推广拉人百度seo优化包含哪几项