一封奇怪的信

信的内容由a-z的26个小写字母构成,而每个字母的宽度均会事先约定。例如字符宽度约定为[1,2,3,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],那么就代表'a'到'd'四个字母的宽度分别是1,2,3,4,而'e'到'z'的宽度均为5

那么按照上述规则将给定内容S书写成一封信后,这封信共有几行?最后一行宽度是多少?

#include "iostream"
#include "vector"
#include "algorithm"
  
using namespace std;
int main()
{
    vector<int> vec(26,0);
    int i = 0;
    while(i < vec.size())
    {
        cin >> vec[i];
        if(vec[i] > 10 || vec[i] < 1)
            i--;
        i++;
    }
    int count = 1;//记录行数
    int num = 0;//记录最后一行个数
    string str;
    cin >> str;
    while(str.size() > 1000 || str.size() < 1)
        cin >> str;
    for(i = 0; i < str.size(); i++)
    {
        int index = str[i] - 'a';
        if(num + vec[index]> 100)
        {
            count++;
            num = vec[index];
        }
        else
            num += vec[index];
    }
    cout << count << " " << num << endl;
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_23283325/article/details/88944967
今日推荐