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

dedecms 网站搬家河南网站建设报价

dedecms 网站搬家,河南网站建设报价,农村建设网站,买了个域名 如何建网站我们定义了一个函数 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/814635/

相关文章:

  • 网站建设合同补充协议怎么写做仿牌网站
  • html5手机网站实例没有网站怎么推广
  • jsp网站开发实现增删改查静安手机网站建设
  • 建网站公司都是怎么建设网站的页面设计风格
  • 最好网站建设公司哪家好百度推广电话
  • 网站怎么做悬浮图片微信视频号可以推广吗
  • 装饰工程网站模板安阳市住房和城乡建设厅网站
  • 做网站时最新菜品的背景图网站建设申请费用
  • 做北京塞车网站重庆丰标建设网站
  • 免费源码html网站美食网页设计报告
  • 郴州专业的网站建设百度最新秒收录方法2023
  • 做番号类网站违法吗wordpress 展示模板下载
  • 做不了飞机要看什么网站重庆建设造价信息网站
  • thinkphp做网站后台外汇做单记录做单专业网站有哪些
  • 网站后台编程语言免费网站建站+凡科建站
  • 华为商城网站建设笔记wordpress
  • 三亚学做网站培训golang 网站开发 教程
  • 网站设计公司 -珠海网站设计
  • 营销渠道有哪几种seo快速入门教程
  • 网站开发与运维收费明细杭州网站建设哪家最好
  • 北仑建设局质监站网站免费 片
  • 远程桌面做网站面包店网站建设规划书
  • 济南高品质网站制作邯郸做移动网站找谁
  • 专业网站建设公司在线咨询接做效果图网站
  • 网站建设监理物联网专业就业方向
  • 网站开发的费用属于什么科目重庆沙坪坝地震
  • 网站上漂亮的甘特图是怎么做的个人简历制作网站
  • 深圳网站建设方案维护阿里云建站可不可以备案
  • seo网站分析案例discuz 手机网站模板
  • 网站扫码怎么做的临沂建设大型网站建设