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

盐城网站建设推广优化附近的网站电脑培训班

盐城网站建设推广优化,附近的网站电脑培训班,最近热点新闻事件,淘宝找做网站我们定义了一个函数 countUniqueChars(s) 来统计字符串 s 中的唯一字符,并返回唯一字符的个数。 例如:s "LEETCODE" ,则其中 "L", "T","C","O","D" 都是唯一字符,…

我们定义了一个函数 countUniqueChars(s) 来统计字符串 s 中的唯一字符,并返回唯一字符的个数。

例如:s = "LEETCODE" ,则其中 "L""T","C","O","D" 都是唯一字符,因为它们只出现一次,所以 countUniqueChars(s) = 5 。

本题将会给你一个字符串 s ,我们需要返回 countUniqueChars(t) 的总和,其中 t 是 s 的子字符串。输入用例保证返回值为 32 位整数。

注意,某些子字符串可能是重复的,但你统计时也必须算上这些重复的子字符串(也就是说,你必须统计 s 的所有子字符串中的唯一字符)。

  • 1 <= s.length <= 105
  • s 只包含大写英文字符

需要统计所有子串中唯一字符次数的总和,可以换个角度统计每个字符在不同子串中出现的次数。

假设当前字符为s[i],s[i]出现的子串只能出现一次s[i],如果出现两次那么s[i]就不计算。所以如果想要计算s[i]对结果的贡献,需要找出左边第一次出现s[i]的地方L,和右边第一次出现s[i]的地方R。

所以只包含一次s[i]的字符串 左边界必须大于等于L+1,右边界必须小于等于R-1,左边界可以取L+1~i ,右边界可以取i到R-1,所以一共有(i-L)*(R-i-2)种情况。

因为都是大写字母,可以使用L(i),R(i)数组表示i左边第一次出现s[i]的下标,i右边第一次出现s[i]的下标。

可以在遍历时使用一个大小为26的数组维护所有字母最后一次出现的下标,然后更新L(i)和R(i)。

class Solution {
public:int uniqueLetterString(string s) {int n = s.size();vector<int>l(n),r(n);vector<int>p(26,-1);for(int i=0;i<n;i++){l[i]=p[s[i]-'A'];p[s[i]-'A']=i;}p=vector<int>(26,n);for(int i=n-1;i>=0;i--){r[i]=p[s[i]-'A'];p[s[i]-'A']=i;}int res=0,MOD=1e9+7;for(int i=0;i<n;i++){res = (res+(long long)(i-l[i])*(r[i]-i))%MOD;}return res;}
};

http://www.yayakq.cn/news/603381/

相关文章:

  • 云南网站建设专家求个网站你懂我意思是
  • 广东软文网站推广文案平面设计范文
  • 郑州做网站开发销售wordpress代码修改没反应
  • 建设银行 上海科技中心网站生成拼贴的网站
  • 织梦网站图标更换怎么做网页小精灵
  • 切管机维修 东莞网站建设新生活cms订货系统下载
  • 湖南做网站 多少钱磐石网络网站建设专业术语
  • 最火网站排名江苏建设人才网网站
  • 网站建设高端定制网站建设的具体过程
  • ppt网站哪家比较好ui设计培训项目
  • 中英文网站开发费用宁波优化网页基本流程
  • 河南专业网站建设免费空间设立网站
  • 顶尖网站建设公司精选聊城做网站的公司
  • 网站 文件 上传电子商务网站开发形式选择
  • 营销式网站制作福田商城网站制作
  • 优秀网络小说推荐前端seo是什么意思
  • 做网站放广告做国产免费视频网站
  • 生活服务网站建设游戏设计网站
  • 做公益网站需要哪些部门认证江西住建云网站
  • 平面设计做兼职网站湖北公众号定制开发
  • 网站制作 网站建设怎么做的WordPress 代码建站
  • 产品推广渠道网络营销推广及优化方案
  • 网站开发工具报告wordpress 图片排版
  • 南京做中英文网站设计网络规划设计师教程第二版 pdf
  • 宁波网站建设是哪家便宜叫人开发网站注意事项
  • 西安网站开发公司类似凡科建站的网站
  • 织梦网站被做跳转本地dedecms网站
  • 网站套餐报价莒南网站建设
  • 网站升级中 模版帮做网站一般多少钱
  • dw网站轮播效果怎么做民治做网站