给定长度为 n 的字符串 S,包含小写字母。每个查询给出区间 [l,r],要求将区间内的所有字符都变成同一个字母,最少需要修改多少个字符?
本质上就是在区间 [l,r] 中,选一个出现次数最多的字母,将其他字符都改为该字母。若该字母出现次数为 maxCnt,区间长度为 len=r−l+1,则最少修改次数为 ans=len - maxCnt.
图书馆的书架上摆放着一排共 n 本书,每本书上贴有一个类别标签,标签仅由小写字母表示。图书管理员计划进行 q 次整理工作,每次指定一个连续区间 [l,r],希望把该区间内的所有书都变成同一种类别。他可以任意更改某一本书的标签(换成任意小写字母)。请你帮助管理员计算:对于每次询问,至少需要更换多少本书,才能让指定区间内的所有书标签统一?
字符串的长度 n 与询问的次数 q 均不超过 10^5,所有询问满足 1≤l≤r≤n。下标从 1 开始计数。
第一行输入一个整数 n。 第二行输入一个长度为 n、仅由小写字母组成的字符串,表示初始标签序列。 第三行输入一个整数 q。
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.