首页 > 其他分享 >游游的字母串

游游的字母串

时间:2023-10-26 17:56:38浏览次数:30  
标签:int 字母 小写字母 游游 字符串 变成

链接:https://ac.nowcoder.com/acm/contest/66943/B
来源:牛客网

对于一个小写字母而言,游游可以通过一次操作把这个字母变成相邻的字母。'a'和'b'相邻,'b'和'c'相邻,以此类推。特殊的,'a'和'z'也是相邻的。可以认为,小写字母的相邻规则为一个环。
游游拿到了一个仅包含小写字母的字符串,她想知道,使得所有字母都相等至少要多少次操作?

输入描述:

一个仅包含小写字母,长度不超过100000的字符串。

输出描述:

一个整数,代表最小的操作次数。

示例1
输入
yab
输出
3
说明
第一次操作,把'y'变成'z',字符串变成了"zab"
第二次操作,把'b'变成'a',字符串变成了"zaa"
第三次操作,把'z'变成'a',字符串变成了"aaa"

很明显这个就是先遍历出来每一个s[i],变成字符j的次数dp[i][j],最后我们遍历每一个字母就行

#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int maxn=1e5+100;
int dp[maxn][32];
char s[maxn];
int get(char a,char b){
	if(a>b){
		swap(a,b);
	}
	int c=b-a;
	c=min(c,a-'a'+'z'-b+1);
	return c;
}
int main(){
	scanf("%s",s);
	int len=strlen(s);
	for(int i=0;i<len;i++){
		for(char j='a';j<='z';j++){
			dp[i][j-'a']=get(s[i],j);
		}
	}
	int minn=1e9;
	for(int i=0;i<26;i++){
		int sum=0;
		for(int j=0;j<len;j++){
			sum+=dp[j][i];
		}
		minn=min(minn,sum);
	}
	cout<<minn<<endl;
}

标签:int,字母,小写字母,游游,字符串,变成
From: https://www.cnblogs.com/lipu123/p/17789955.html

相关文章

  • Mysql、Oracle 中将汉字(中文)按照拼音首字母排序
    Mysql 将汉字(中文)按照拼音首字母排序ORDERBYCONVERT(表别名.字段名USINGgbk)COLLATEgbk_chinese_ciASC;例子select*from(select'嘉实资产'a,'000830'bunionselect'中金鼎益稳健3号单一资产管理计划'a,'002544'bunionselect......
  • html 数字,字母 超出标签设定的宽度问题
    前因:做一个表格页面时,其中有一列网址数据,但这些内容总会超出表格设定的宽度范围,中文就不会,就类似下面这样: 解决(样式中增加下面代码):word-wrap:break-word;  效果: ......
  • 242. 有效的字母异位词
    目录题目法一、字典题目给定两个字符串s和t,编写一个函数来判断t是否是s的字母异位词。注意:若 s和t 中每个字符出现的次数都相同,则称 s和t 互为字母异位词。示例1:输入:s="anagram",t="nagaram"输出:true示例2:输入:s="rat",t="car"......
  • 使用@RequestBody时第二个字母映射失败
    在二阶段项目开发过程中,使用@RequestBody接受从前端传过来的对象时,首字母或者第二个字母大写(驼峰命名法)的属性映射失败。1privateDoublehStatusHeight; 原因是:使用了@Data注解(省去了get和set方法)而javaBean的规范导致json传参首字母大写将永远获取不到 解决办法:1.最......
  • P5704 【深基2.例6】字母转换
    1.题目介绍2.题解2.1ASCII码表在ASCII码表中,小写字母=大写字母+32,则大写字母=小写字母-32#include<iostream>usingnamespacestd;intmain(){ chara;//创建字符型变量 cin>>a;//小写输入 cout<<char(a-32);//注意要用char进行强制转换,否则输出的就是整......
  • PHP将数组通讯录按字母A-Z排序
    1.调用publicfunctiontest(){$volist=Db::name("user")->select();$list=$this->chartSort($volist);} 2.具体方法/***将数组按字母A-Z排序*@return[type][description]*/publicfunctionchartSort($user){foreach(......
  • ECS-Centos7登录页面出现Hint: caps lock on,输入大小写字母反了(大小写反转问题)
    问题描述:虚拟机Centos7,输入大小写字母反了,开启capslock的时候变成小写字母了,关闭则变成大写了。。。解决办法:只需要执行:setleds+caps 或 setleds-caps 即可。如图: ......
  • 代码随想训练营第五天(Python)| 242.有效的字母异位词、349. 两个数组的交集、第202题.
    242.有效的字母异位词1、数组法这个思路贼6,在这个题的效率也高classSolution:defisAnagram(self,s:str,t:str)->bool:#全部转为asii码如果是互为异为词,则最后的-+后的结果为0record=[0]*26#范围是26。一维foriins......
  • 代码随想录第六天 | 哈希表、242.有效的字母异位词 、349. 两个数组的交集 、202. 快
    哈希表什么是哈希表哈希表是根据关键码的值而直接进行访问的数据结构。简单的例子:数组什么时候想到用哈希法当我们遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法。哈希碰撞元素通过哈希函数被映射到同一个索引下标位置解决方法:拉链法从发生冲......
  • 游游的问号替换
    题目链接:C-游游的问号替换_牛客周赛Round15(nowcoder.com)  可以当成构造题目做,长度最长只有1000,并且每次dfs的正确答案只有一两个,所以时间跑的很快intmain(){strings;cin>>s;intn=s.size();autodfs=[&](auto&&dfs,stringstr,ints......