首页 > 其他分享 >11.子串简写

11.子串简写

时间:2024-03-30 15:06:21浏览次数:33  
标签:11 子串 pre sum 字符串 c2 c1 简写

11.子串简写 - 蓝桥云课 (lanqiao.cn)
问题描述
程序猿圈子里正在流行一种很新的简写方法:对于一个字符串,只保留首尾字符,将首尾字符之间的所有字符用这部分的长度代替。例如 internation-alization 简写成i18nKubernetes(注意连字符不是字符串的一部分)简写成 K8sLangiao 简写成L5o等
在本题中,我们规定长度大于等于K的字符串都可以采用这种简写方法(长度小于K的字符串不配使用这种简写)。
给定一个字符串S和两个字符  和c2,请你计算S有多少个以c1 开头C2结尾的子串可以采用这种简写?
输入格式
第一行包含一个整数K
第二行包含一个字符串 S和两个字符 c1 和c2。

import os
import sys

# 请在此输入您的代码
k=int(input())
s,c1,c2=input().split()
ans=0
pre_sum=[0]*len(s) #前缀和
for i in range(len(s)):
  pre_sum[i]=pre_sum[i-1] #得到前i个的和赋值到i
  if s[i]==c1:
    pre_sum[i]+=1  #c1出现次数
  elif s[i] == c2 and i-k+1>=0:
    ans+=pre_sum[i-k+1] #i-k+1表示除去中间k个字符前面有多少个c1,都可以与当前c2组合,且不会重复(c2位置变化)

print(ans)

标签:11,子串,pre,sum,字符串,c2,c1,简写
From: https://blog.csdn.net/weixin_72050316/article/details/137172619

相关文章

  • 洛谷题单指南-图的基本应用-P1127 词链
    原题链接:https://www.luogu.com.cn/problem/P1127题意解读:按字典序排列单词,使得相邻单词的首位字母一样。解题思路:由于单词之间可以相邻的条件是前一个单词的末尾字母和后一个单词的开头字母一样,因此可以遍历每一个单词,再找到每一个可以接在其后面的单词,建立一个邻接表,然后从......
  • sql 注入的类型之 post 基于错误的注入(sqllib靶场less-11-12)(通过burpusite分析)
      post注入和get注入一样,都是基于数据库没有对语句进行足够多的过滤,导致用户可以直接在url上执行sql语句。这两基本上没区别,但是基于post的注入在真实情况下会比get的多得多,最典型的post注入就是万能密码万能密码万能密码便是post注入的一种(也是sql注入),其原理也是因为后端......
  • 递推 1166:求f(x,n)
     #include<iostream>#include<cmath>usingnamespacestd;intmain(){ floatx,n,b=0; cin>>x>>n; b=sqrt(1+x); for(inti=2;i<=n;i++){ b=sqrt(i+b); } cout<<b; return0;}1166:求f(x,n)时间限制:1000ms    ......
  • 第11章 使用类——运算符重载(一)一个简单的运算符重载示例(Time类对象的加法)
    本文章是作者根据史蒂芬·普拉达所著的《C++PrimerPlus》而整理出的读书笔记,如果您在浏览过程中发现了什么错误,烦请告知。另外,此书由浅入深,非常适合有C语言基础的人学习,感兴趣的朋友可以自行阅读此书籍。运算符重载我们先了解下函数重载的概念,函数重载,也叫函数多态,指的是用......
  • P1170 兔八哥与猎人
    题目描述兔八哥躲藏在树林旁边的果园里。果园有 M×N 棵树,组成一个 M 行 N 列的矩阵,水平或垂直相邻的两棵树的距离为 1。兔八哥在一棵果树下。猎人背着猎枪走进了果园,他爬上一棵果树,准备杀死兔八哥。如果猎人与兔八哥位置的连线上没有其它的果树,猎人就可以看到兔八哥......
  • win11无需工具暂停更新3000天
    关闭更新:在命令提示符输入以下命令后找到"设置->Windows更新"将暂停更新的天数调到最高regadd"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings"/vFlightSettingsMaxPauseDays/treg_dword/d3000/f恢复更新:找到"设置->Windows更新"点击"......
  • win11切换桌面快捷键
    上回说到win11新设计的任务栏上图标不够放的问题,另一个方式多任务视图,就是多个桌面,这个功能十年前就在MacOS和Linux上流行了,win平台上10版上带有,只是win10有多行任务栏吗,就没探索这个功能,win11就得转正了,左ctrl+win+左右箭头切换,还有待进步啊,一是不能固定桌面数和单键循环,来回倒腾......
  • 解决:NuxtJS项目 ,刷新localhost:3000/product/details/111页面的时候useFetch不工作!
    背景在nuxt项目中,点击产品列表跳转到详情页是正常的,路径为:localhost:3000/product/device?id=111但是对着浏览器刷新之后,发现不在执行请求了。要解决问题:刷新浏览器之后正常展示产品内容。   目录层级|pages|product|device.vue|......
  • CF1184E1题解
    CF11841E1&blog尽然想让第一条边最大且这条边在最小生成树中,那么这条边就需要尽量晚。但是假如加上一条边\(i\)可以使\(u_1\)和\(v_1\)联通并且第\(w_i\lew_1\)那么我们就会舍弃原本第一条边,使用第\(i\)条边。所以第一条边的比安全一定小于等于所有么满足上述条......
  • 【数据库】postgresql截取最后一个字符之前的所有字符,如V1.0.0.20230731110947中取V1.
    在PostgreSQL中,我们可以使用position函数和split_part函数来截取最后一个.之前的所有字符。这两个函数都非常有用,尤其是在处理文本数据时。position函数position函数用于查找一个字符串中某个子串的位置。它的语法如下:POSITION(substringINstring)其中,substring是要查找的......