90. 字符串转换

时间限制1000 ms     内存限制 65536 KB    

题目描述

我们将仅由若干个同一小写字母构成的字符串称之为简单串,例如"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. 字符串转换相关推荐

  1. 简单模拟 | 北邮OJ | 90. 字符串转换

    https://vpn.bupt.edu.cn/http/10.105.242.80/problem/p/90/ 自己写得low代码 #include <bits/stdc++.h> #d ...

  2. 北邮oj题库刷题计划(更新ing)

    北邮oj题库刷题计划(更新ing) 83. A + B Problem 84 Single Number 85. Three Points On A Line 120 日期 121 最值问题 122 ...

  3. 北邮OJ 141 虚数

    北邮OJ 虚数 #include <bits/stdc++.h> using namespace std; typedef struct fushu{int x; //实部 int y; ...

  4. 校外如何登陆北邮oj

    由于北邮oj不对外开放,准备复试的我需要进入北邮oj:其他小朋友也有这个想法.故写此博客. 先找北邮土著借北邮账号,包括一些认识的同学,直系学长学姐,他们都很乐意帮助的~ 下面是校外进北邮校内网的方法 ...

  5. 北邮水题 90. 字符串转换

    题目:https://vpn.bupt.edu.cn/http/10.105.242.80/problem/p/90/ 题解: 本来想将字符转换成数字再求平均再计算步数,但是计算出来的平均数没有考虑z ...

  6. 字符串处理 | 北邮OJ | 101. IP地址

    https://vpn.bupt.edu.cn/http/10.105.242.80/problem/p/101/ 方法一. split 我编写了一个专用的split函数.但是要特判123.123.1 ...

  7. 字符串处理 | 北邮OJ | 103. 反转单词

    https://vpn.bupt.edu.cn/http/10.105.242.80/problem/p/103/ 对于这种题要引起重视了 傻逼代码 #include <bits/stdc++. ...

  8. 北邮OJ 981. 16校赛-Saber's Number Game

    时间限制 1000 ms 内存限制 65536 KB 题目描述 Saber is fond of number games of various kinds, she particularly lik ...

  9. 北邮OJ 102. 最远距离 北邮2012网研院复试上机题

    102. 最远距离 时间限制1000 ms     内存限制 65536 KB     题目描述 正义的伙伴褋祈和葬仪社的机器人Fuyuneru正在被邪恶的GHQ部队追杀.眼看着快要逃不掉了,祈就把重 ...

最新文章

  1. 你需要知道的有关Selenium异常处理的都在这儿
  2. 如何开启匿名访问SharePoint 2010里的Client Object Model
  3. 关于A基金和B基金的了解
  4. Windows 不能在 本地计算机 启动 SQL Server 。错误代码126.
  5. 特斯拉2021全年交付近百万辆,同比暴涨87%,马斯克:了不起!
  6. Exchange2013DAG配置-零错误
  7. 汇编OFFSET,SEG,LEA
  8. .NET的一点历史故事:擦肩而过的机遇
  9. vue设置标签自定义属性_Vue组件化开发之插槽
  10. 拖拽升空的Android小火箭
  11. 小白入坑 Web 渗透测试必备指南
  12. java 形参 实参_java 形参是父类实参是子类的问题
  13. [Java] 蓝桥杯ALGO-146 算法训练 4-2找公倍数
  14. bat 字符串截取操作
  15. 如何改计算机二级照片大小,怎么修改照片大小内存,尺寸
  16. 跟着团子学SAP:售前项目、项目前期管理思路
  17. 2k2实用球员_盘点推荐萌新NBA2KOL2里性价比极高又好用的球员中锋篇
  18. 常见字读音(粤语)---(1)
  19. 忍得住清贫 耐得住寂寞 禁得起诱惑
  20. Elasticsearch应用案例1:百度

热门文章

  1. baseline发布!OPPO安全AI挑战赛,人脸识别对抗攻击赛题详解
  2. 从6篇经典论文看问题生成及其相关技术
  3. 不用卷积也能生成清晰图像,用两个Transformer构建一个GAN
  4. 训练吞吐量提升6倍!飞桨弹性计算推荐系统套件ElasticCTR1.0发布
  5. ICCV 2019 | 基于关联语义注意力模型的图像修复
  6. POJ - 2002 Squares 数正方形【二分】【哈希表】
  7. python 支付宝个人账单_解析2018年度三大用户数据报告——网易云音乐、支付宝、微信...
  8. 牛客题霸 NC4 判断链表中是否有环
  9. MySQL——Access|SQL Server示例数据库Northwind导入到MySQL 8.0时出错解决方案
  10. 维吉尼亚c语言编码原理,维吉尼亚密码的C语言实现.doc