zoukankan      html  css  js  c++  java
  • 【经验总结】北邮OJ

    时间限制 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(T100),表示测试数据的组数。 每组测试数据只有一行,为仅含小写字母的字符串,字符串长度不超过1000。

    输出格式

    对于每一组数据,输出一个整数,表示将字符串转换成简单串的最小花费。

    输入样例

    2
    abbba
    abbac
    

    输出样例

    2
    3


    分析:两个for循环枚举输入的每组数据中的每个字符到达每个字符的花费,然后比较求出最小值输出。

    //翻了个错误,只意识到向后转换没有意识到向前也可以转换,这两个中选花费最少的
    //#define min(a,b) a<b?a:b
    //最小值得求法 min(abs(i-j),26-abs(i-j));

    #include <iostream>
    #include <string>
    #include <cmath>
    //#include <cstdlib>
    #define min(a,b) a<b?a:b
    using namespace std;
    int main ()
    {
    string mystr;
    int n;
    int m[1001];//暂存数据
    char mych = NULL;
    int cost;
    int mymin;
    int myout[101];

    cin >> n;
    for (int i_1 = 0;i_1 < n;i_1++)
    {
    cin >> mystr;

    //计算每一个字符的花费,最后比较选出最小
    for (int i_2 = 0;i_2 < mystr.length();i_2++)
    {
    //if (mych == mystr[i_2])//已经有过这个字母了,不需要继续比较了
    //{
    // continue;
    //}
    mych = mystr[i_2];
    cost = 0;
    for (int i_3 = 0;i_3 < mystr.length();i_3++)
    {
    cost += min(abs(mystr[i_3] - mych),26-abs((mystr[i_3] - mych)));//计算出每一个单词的花费
    }
    m[i_2] = cost;//暂存一组数据中每个单词的最小花费
    //cout <<cost <<endl;
    }
    //cout << m[0]<< m[1]<< m[2]<<endl;
    //比较,选出改组的最小值
    mymin = m[0];
    for (int i_4 = 1;i_4 < mystr.length();i_4++)
    {
    if (mymin > m[i_4])
    {
    mymin = m[i_4];
    }
    }
    //cout << mymin <<endl;
    myout[i_1] = mymin;
    //cout << sizeof(m)/sizeof(m[0]) <<endl;
    }

    //输出结果
    for (int i_5 = 0;i_5 < n; i_5++)
    {
    cout << myout[i_5] <<endl;
    }

    return 0;
    }

  • 相关阅读:
    Hanoi塔
    采药
    进制转换(大数)
    Load Balancing with NGINX 负载均衡算法
    upstream模块实现反向代理的功能
    epoll
    在nginx启动后,如果我们要操作nginx,要怎么做呢 别增加无谓的上下文切换 异步非阻塞的方式来处理请求 worker的个数为cpu的核数 红黑树
    粘性会话 session affinity sticky session requests from the same client to be passed to the same server in a group of servers
    负载均衡 4层协议 7层协议
    A Secure Cookie Protocol 安全cookie协议 配置服务器Cookie
  • 原文地址:https://www.cnblogs.com/lauzhishuai/p/6511910.html
Copyright © 2011-2022 走看看