北邮OJ 90. 字符串转换
90. 字符串转换
题目描述
我们将仅由若干个同一小写字母构成的字符串称之为简单串,例如"aaaa"是一个简单串,而"abcd"则不是简单串。现在给你一个仅由小写字母组成的字符串,你需要用最小的花费,将其转换成一个简单串。 花费的计算规则如下:将a到z这26个小写字母从左到右排成一排,则每个字母都有左右两个邻居,我们认为a的左邻居是z,z的右邻居是a。一个字母只能转换成其相邻的字母,转换的花费为1。一个字母可以进行多次转换,例如将a转换成d,可以进行如下的步骤: a->b->c->d,花费为3。字符串的转换花费为所有字母转换花费之和。例如将字符串"abbbz"转换成简单串的最小花费为3,转换后的结果为"bbbbb"。
输入格式
第一行一个整数T (T≤100 ),表示测试数据的组数。 每组测试数据只有一行,为仅含小写字母的字符串,字符串长度不超过1000。
输出格式
对于每一组数据,输出一个整数,表示将字符串转换成简单串的最小花费。
输入样例
2
abbba
abbac
输出样例
2
3
先计算出每个字母转化为其他字母的耗费来,再统计出每个字母各出现了多少次,然后枚举所有的变化即可。
#include<stdio.h>
#include<cmath>
#include<string.h>
#define min(a,b) a<b?a:b
#define clr(a) memset(a,0,sizeof a)
using namespace std;
int main(){int t,i,j,a[26],b[26][26],ans,tmp;char str[1001];for(i=0;i<26;i++)for(j=0;j<26;j++)b[i][j]=min(abs(i-j),26-abs(i-j));for(scanf("%d",&t);t--;){scanf("%s",str);clr(a);ans=999999999;for(i=0;str[i];i++)a[str[i]-'a']++;for(i=0;i<26;i++){tmp=0;for(j=0;j<26;j++)tmp+=a[j]*b[j][i];ans=min(ans,tmp);}printf("%d\n",ans);}return 0;
}
北邮OJ 90. 字符串转换相关推荐
- 简单模拟 | 北邮OJ | 90. 字符串转换
https://vpn.bupt.edu.cn/http/10.105.242.80/problem/p/90/ 自己写得low代码 #include <bits/stdc++.h> #d ...
- 北邮oj题库刷题计划(更新ing)
北邮oj题库刷题计划(更新ing) 83. A + B Problem 84 Single Number 85. Three Points On A Line 120 日期 121 最值问题 122 ...
- 北邮OJ 141 虚数
北邮OJ 虚数 #include <bits/stdc++.h> using namespace std; typedef struct fushu{int x; //实部 int y; ...
- 校外如何登陆北邮oj
由于北邮oj不对外开放,准备复试的我需要进入北邮oj:其他小朋友也有这个想法.故写此博客. 先找北邮土著借北邮账号,包括一些认识的同学,直系学长学姐,他们都很乐意帮助的~ 下面是校外进北邮校内网的方法 ...
- 北邮水题 90. 字符串转换
题目:https://vpn.bupt.edu.cn/http/10.105.242.80/problem/p/90/ 题解: 本来想将字符转换成数字再求平均再计算步数,但是计算出来的平均数没有考虑z ...
- 字符串处理 | 北邮OJ | 101. IP地址
https://vpn.bupt.edu.cn/http/10.105.242.80/problem/p/101/ 方法一. split 我编写了一个专用的split函数.但是要特判123.123.1 ...
- 字符串处理 | 北邮OJ | 103. 反转单词
https://vpn.bupt.edu.cn/http/10.105.242.80/problem/p/103/ 对于这种题要引起重视了 傻逼代码 #include <bits/stdc++. ...
- 北邮OJ 981. 16校赛-Saber's Number Game
时间限制 1000 ms 内存限制 65536 KB 题目描述 Saber is fond of number games of various kinds, she particularly lik ...
- 北邮OJ 102. 最远距离 北邮2012网研院复试上机题
102. 最远距离 时间限制1000 ms 内存限制 65536 KB 题目描述 正义的伙伴褋祈和葬仪社的机器人Fuyuneru正在被邪恶的GHQ部队追杀.眼看着快要逃不掉了,祈就把重 ...
最新文章
- 你需要知道的有关Selenium异常处理的都在这儿
- 如何开启匿名访问SharePoint 2010里的Client Object Model
- 关于A基金和B基金的了解
- Windows 不能在 本地计算机 启动 SQL Server 。错误代码126.
- 特斯拉2021全年交付近百万辆,同比暴涨87%,马斯克:了不起!
- Exchange2013DAG配置-零错误
- 汇编OFFSET,SEG,LEA
- .NET的一点历史故事:擦肩而过的机遇
- vue设置标签自定义属性_Vue组件化开发之插槽
- 拖拽升空的Android小火箭
- 小白入坑 Web 渗透测试必备指南
- java 形参 实参_java 形参是父类实参是子类的问题
- [Java] 蓝桥杯ALGO-146 算法训练 4-2找公倍数
- bat 字符串截取操作
- 如何改计算机二级照片大小,怎么修改照片大小内存,尺寸
- 跟着团子学SAP:售前项目、项目前期管理思路
- 2k2实用球员_盘点推荐萌新NBA2KOL2里性价比极高又好用的球员中锋篇
- 常见字读音(粤语)---(1)
- 忍得住清贫 耐得住寂寞 禁得起诱惑
- Elasticsearch应用案例1:百度
热门文章
- baseline发布!OPPO安全AI挑战赛,人脸识别对抗攻击赛题详解
- 从6篇经典论文看问题生成及其相关技术
- 不用卷积也能生成清晰图像,用两个Transformer构建一个GAN
- 训练吞吐量提升6倍!飞桨弹性计算推荐系统套件ElasticCTR1.0发布
- ICCV 2019 | 基于关联语义注意力模型的图像修复
- POJ - 2002 Squares 数正方形【二分】【哈希表】
- python 支付宝个人账单_解析2018年度三大用户数据报告——网易云音乐、支付宝、微信...
- 牛客题霸 NC4 判断链表中是否有环
- MySQL——Access|SQL Server示例数据库Northwind导入到MySQL 8.0时出错解决方案
- 维吉尼亚c语言编码原理,维吉尼亚密码的C语言实现.doc