列表

详情


NC204379. 老铁,安排上了!

描述

输入描述

老铁,每行安排了一些小写字母和数字!

输出描述

老铁,每行给安排个数字!

示例1

输入:

abc
123
abc123

输出:

6
9
15

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++14(g++5.4) 解法, 执行用时: 517ms, 内存消耗: 996K, 提交时间: 2020-04-02 09:59:05

#include <bits/stdc++.h>
using namespace std;
int a[27]={1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,4,1,2,3,1,2,3,4};
int b[11]={1,1,4,4,4,4,4,5,4,5}, r;
int main()
{
    for(string s; cin >> s; printf("%d\n", r), r = 0)
        for(int i = 0; i < s.size(); i ++)
            if(isdigit(s[i]))
                r += b[s[i] - '0'];
            else
                r += a[s[i] - 'a'];
}

C++11(clang++ 3.9) 解法, 执行用时: 494ms, 内存消耗: 612K, 提交时间: 2020-04-02 12:17:46

#include<bits/stdc++.h>
using namespace std;
int a[27]={1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,4,1,2,3,1,2,3,4};
int b[11]={1,1,4,4,4,4,4,5,4,5},r;
int main()
{
	for(string s;cin>>s;printf("%d\n",r),r=0)
	for(int i=0;i<s.size();i++)
	if(isdigit(s[i]))
	r+=b[s[i]-'0'];
	else
	r+=a[s[i]-'a'];
}

上一题