K-Dominant Character CodeForces - 888C 思维 构造

题意

让我们在这个字符串中找一定k长度的字串中都至少含有一个相同的字符 让求这个字串的最小长度

分析

也就是说当我们最终确定了 字串的最小长度后 每个以此长度的字串都至少含有一个相同字符
那么当我们找这个长度的时候 也就是说 每个k长度的字串中都至少出现一个相同的字符
那么也就是说 如果我们知道每个字符间距的最大距离作为这个串的必要结果 也就是说 这个所有字符最大间距的最小值就是我们需要的答案

code

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
char a[100010];
int pos[30],ans[30];// pos存放最长距离 ans中存放每个字符的最大距离 其中取最小的就是结果 
const int inf = 900010;
int main()
{gets(a);int c=0,len = strlen(a);memset(ans,-1,sizeof(ans));for(int i=0;i<len;i++){// 注意考虑的是每个字符的最大间距 不能忽略一个字符最后的位置和最后长度的距离 和一个字符第一个位置与最开始位置的长度 我们考虑的是if(ans[a[i]-'a']==-1)ans[a[i]-'a'] = i+1;//b与串开始的距离 为最大距离ans[a[i]-'a']=max(i-pos[a[i]-'a'],ans[a[i]-'a']);// 注意 aaabbb的情况中要考虑到a与最后一个字符的距离 pos[a[i]-'a']=i;}for(int i=0;i<26;i++)if(ans[i]!=-1)ans[i] = max(len-pos[i],ans[i]);int res=inf;for(int i=0;i<26;i++){if(ans[i]!=-1)res = min(ans[i],res);}printf("%d\n",res);return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/425398.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

display:table的用法

目前&#xff0c;在大多数开发环境中&#xff0c;已经基本不用table元素来做网页布局了&#xff0c;取而代之的是divcss&#xff0c;那么为什么不用table系表格元素呢&#xff1f; 1、用DIVCSS编写出来的文件k数比用table写出来的要小&#xff0c;不信你在页面中放1000个table和…

[剑指offer]面试题第[38]题[JAVA][字符串的排列][回溯法]

【问题描述】[中等] 输入一个字符串&#xff0c;打印出该字符串中字符的所有排列。 你可以以任意顺序返回这个字符串数组&#xff0c;但里面不能有重复元素。示例: 输入&#xff1a;s "abc" 输出&#xff1a;["abc","acb","bac",&qu…

32tomcat的目录结构

<% page language"java" contentType"text/html; charsetUTF-8"pageEncoding"UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>歌谣</title> </head> <bod…

Codeforces Round #413 C-Fountains 树状数组

题意 本题给我们给我们两种货币初始金额 每种货币分别对应能买不同种类的喷泉 每个喷泉有花费和价值 问我们如果单纯建造两个喷泉在限定金额内的最大值 分析 考虑一下 发现有三种情况 &#xff11; 两个喷泉从coin中里建造 &#xff12; 两个喷泉从diamond中建造 &…

[剑指offer]面试题第[52]题[Leedcode][第160题][JAVA][相交链表][双指针]

【问题描述】[简单] 【解答思路】 1. 双指针法 时间复杂度&#xff1a;O(N^2) 空间复杂度&#xff1a;O(1) public ListNode getIntersectionNode(ListNode headA, ListNode headB) {if (headA null || headB null) return null;ListNode pA headA, pB headB;while (pA !…

redis 分布式锁实现

<?php /*** 实现Redis分布锁*/$key test; //要更新信息的缓存KEY $lockKey lock:.$key; //设置锁KEY $lockExpire 10; //设置锁的有效期为10秒 //获取缓存信息 $result $redis->get($key); //判断缓存中是否有数据 if(empty($result)) { $status TRUE…

33tomcat目录结构

1创建一个myhome文件 2创建一个index.jsp文件 <% page language"java" contentType"text/html; charsetUTF-8"pageEncoding"UTF-8"%><!DOCTYPE html><html><head><meta charset"utf-8"><title>歌…

CodeForces 799B (B) T-shirt buying

分析 本题实质上就是对数据处理一下就可以了 就是数据结构实现题 我们要求对应索引下按照某种排序规则的线性表时 取最优时 可以用堆 每次拿出一个元素 堆内元素调整顺序 然后用三个堆 就可以表示三张表 每次我们得到顾客的一个喜欢颜色 就可以利用这个颜色去查堆 找到就输出…

复合数据类型,英文词频统计

作业要求&#xff1a;https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2696 1.列表&#xff0c;元组&#xff0c;字典&#xff0c;集合分别如何增删改查及遍历。 列表的增删改查list1 list(this is a list)#增加list1.append(!) #末尾增加元素list1.insert(2,this i…

34tomcat设置默认页面

如何让hah.jsp成为欢迎界面&#xff1f; 在web-inf文件夹中配置项目部署文件web.xml。 添加标签 <welcome-file-list> <welcome-file>/hah.jsp</welcome-file> <welcome-file-list> 改变web.xml文件首页&#xff0c;报 将文件变成hah.jsp 默认页就设置…

[Leetcode][第718题][JAVA][最长重复子数组][动态规划][滑动窗口][暴力]

【问题描述】[中等] 给两个整数数组 A 和 B &#xff0c;返回两个数组中公共的、长度最长的子数组的长度。示例 1:输入: A: [1,2,3,2,1] B: [3,2,1,4,7] 输出: 3 解释: 长度最长的公共子数组是 [3, 2, 1]。 说明:1 < len(A), len(B) < 1000 0 < A[i], B[i] < 100…

CodeForces 841C (C) Leha and Function 贪心

题意 定义F(n,k)表示&#xff11;&#xff0d;&#xff4e;的数列中以&#xff4b;为子集总个数的最小值 现有&#xff21;&#xff0c;&#xff22;数组 让我们重新排列&#xff21; 使得sigma[1 len]F(ai,bi)的数学期望最大 分析 题目看上去有点绕 但从期望上分析下其…

技术方法论

1、pom.xml配置新版本的jar包&#xff0c;如果引用不到可以先删除本地仓库的jar包&#xff0c;从私服重新下载新版本 转载于:https://www.cnblogs.com/luao/p/10535817.html

CodeForces 841B (B) 博弈

题意 定义&#xff21;把取数列中区间和为奇数的元素取出来 &#xff22;把数列中区间长度为偶数的区间删除 那么谁先面临无数可拿的局面为输 输出赢家 &#xff21;先取 分析 分析可知本题如果区间中每一个数是偶数那么&#xff22;可以一次取完 则&#xff21;不能取…

[剑指offer]面试题第[53-1]题[JAVA][在排序数组中查找数字-1][二分法][暴力法]

【问题描述】[中等] 统计一个数字在排序数组中出现的次数。 示例 1:输入: nums [5,7,7,8,8,10], target 8 输出: 2 示例 2:输入: nums [5,7,7,8,8,10], target 6 输出: 0【解答思路】 1. 暴力法/遍历 时间复杂度&#xff1a;O(N) 空间复杂度&#xff1a;O(1) public int…

luogu P3295 [SCOI2016]萌萌哒

传送门 题目条件"两个子串\(S[l_1,r_1],S[l_2,r_2]\)完全相同"等价于\(\forall i \in[0,r_1-l_11],S_{l1i}S_{l_2i}\),然后所有相同位置的都要选一种数字,把所有相同的放在一个集合,然后记集合个数为\(cn\)那么答案就是\(9*10^{cn-1}\),因为第一位不为0,然后就可以暴…

CodeForces - 888C K-Dominant Character 思维

题意 找到在整个字符串中 所有以&#xff4b;长度的子串中的公共串至少长度为&#xff11;的字符串 求出这个&#xff2b;的最小值是多少  分析 每个子串都有的至少长度为&#xff11;的公共子串 这里我们要求&#xff4b;的最小 那么不如就把公共串的长度考虑为&#…

[剑指offer]面试题第[53-2]题[JAVA][0-n-1中缺失的数字][二分法][暴力法]

【问题描述】[简单] 一个长度为n-1的递增排序数组中的所有数字都是唯一的&#xff0c;并且每个数字都在范围0&#xff5e;n-1之内。在范围0&#xff5e;n-1内的n个数字中有且只有一个数字不在该数组中&#xff0c;请找出这个数字。示例 1:输入: [0,1,3] 输出: 2 示例 2:输入: …