天梯初级练习题目 7-91 ~ 7-100 含全部测试点

7-91 字符串转换成十进制整数 分数 15

输入一个以#结束的字符串,本题要求滤去所有的非十六进制字符(不分大小写),组成一个新的表示十六进制数字的字符串,然后将其转换为十进制数后输出。如果在第一个十六进制字符之前存在字符“-”,则代表该数是负数。

输入格式:

输入在一行中给出一个以#结束的非空字符串。

输出格式:

在一行中输出转换后的十进制数。题目保证输出在长整型范围内。

输入样例:

+-P-xf4+-1!#

输出样例:

-3905

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

#include <iostream>
using namespace std;
int ans, tt = 1;
bool flag;
char op;

int get(char c)
{
    if (isdigit(c)) return c - '0';
    return tolower(c) - 'a' + 10;
}

int main()
{
    while ((op = getchar()), op != '#')
    {
        if (op == '-' && !flag) tt = -1, flag = true;
        else if (isdigit(op) ||
            'a' <= tolower(op) && tolower(op) <= 'f')
            ans = ans * 16 + get(op), flag = true;
    }
    cout << tt * ans << endl;
    return 0;
}

7-92 输出大写英文字母 分数 15

本题要求编写程序,顺序输出给定字符串中所出现过的大写英文字母,每个字母只输出一遍;若无大写英文字母则输出“Not Found”。

输入格式:

输入为一个以回车结束的字符串(少于80个字符)。

输出格式:

按照输入的顺序在一行中输出所出现过的大写英文字母,每个字母只输出一遍。若无大写英文字母则输出“Not Found”。

输入样例1:

FONTNAME and FILENAME

输出样例1:

FONTAMEIL

输入样例2:

fontname and filrname

输出样例2:

Not Found

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

#include <iostream>
#include <string>
#include <set>
using namespace std;
set<char> st;
string input;
bool flag = true;

int main()
{
    getline(cin, input);
    for(char c : input)
        if(isupper(c) && !st.count(c)) putchar(c), st.insert(c), flag = false;
    if(flag) puts("Not Found");
    return 0;
}

7-93 删除重复字符 分数 20

本题要求编写程序,将给定字符串去掉重复的字符后,按照字符ASCII码顺序从小到大排序后输出。

输入格式:

输入是一个以回车结束的非空字符串(少于80个字符)。

输出格式:

输出去重排序后的结果字符串。

输入样例:

ad2f3adjfeainzzzv

输出样例:

23adefijnvz

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

#include <iostream>
#include <set>
using namespace std;
string input;
set<char> st;

int main()
{
    getline(cin, input);
    for(char c : input) st.insert(c);
    for(auto c : st) putchar(c);
    return 0;
}

7-94 字符串替换 分数 15

本题要求编写程序,将给定字符串中的大写英文字母按以下对应规则替换:

原字母对应字母
AZ
BY
CX
DW
XC
YB
ZA

输入格式:

输入在一行中给出一个不超过80个字符、并以回车结束的字符串。

输出格式:

输出在一行中给出替换完成后的字符串。

输入样例:

Only the 11 CAPItaL LeTtERS are replaced.

输出样例:

Lnly the 11 XZKRtaO OeGtVIH are replaced.

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

#include <iostream>
#include <string>
using namespace std;
string input;

int main()
{
    getline(cin, input);
    for(char c : input)
        putchar(isupper(c) ? 'Z' - (c - 'A') : c);
    return 0;
}

7-95 字符转换 分数 15

本题要求提取一个字符串中的所有数字字符('0'……'9'),将其转换为一个整数输出。

输入格式:

输入在一行中给出一个不超过80个字符且以回车结束的字符串。

输出格式:

在一行中输出转换后的整数。题目保证输出不超过长整型范围。

输入样例:

free82jeep5

输出样例:

825

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

#include <iostream>
#include <string>
using namespace std;
string input;
int ans;

int main()
{
    getline(cin, input);
    for(char c : input) if(isdigit(c)) ans = ans * 10 + c - '0';
    cout << ans << endl;
    return 0;
}

7-96 找最小的字符串 分数 15

本题要求编写程序,针对输入的N个字符串,输出其中最小的字符串。

输入格式:

输入第一行给出正整数N;随后N行,每行给出一个长度小于80的非空字符串,其中不会出现换行符,空格,制表符。

输出格式:

在一行中用以下格式输出最小的字符串:

Min is: 最小字符串

输入样例:

5
Li
Wang
Zha
Jin
Xian

输出样例:

Min is: Jin

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

#include <iostream>
#include <set>
using namespace std;
set<string> st;
string input;
int n;

int main()
{
    ios::sync_with_stdio(false), cin.tie(0);
    cin >> n;
    while(n --) cin >> input, st.insert(input);
    cout << "Min is: " << *st.begin() << endl;
    return 0;
}

7-97 字符串排序 分数 20

本题要求编写程序,读入5个字符串,按由小到大的顺序输出。

输入格式:

输入为由空格分隔的5个非空字符串,每个字符串不包括空格、制表符、换行符等空白字符,长度小于80。

输出格式:

按照以下格式输出排序后的结果:

After sorted:
每行一个字符串

输入样例:

red yellow blue black white

输出样例:

After sorted:
black
blue
red
white
yellow

鸣谢贵州民族大学张玉全老师修正数据!

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

#include <iostream>
#include <set>
using namespace std;
set<string> st;
string input;

int main()
{
    while(cin >> input) st.insert(input);
    cout << "After sorted:" << endl;
    for(auto c : st) cout << c << endl;
    return 0;
}

7-98 找最长的字符串 分数 15

本题要求编写程序,针对输入的N个字符串,输出其中最长的字符串。

输入格式:

输入第一行给出正整数N;随后N行,每行给出一个长度小于80的非空字符串,其中不会出现换行符,空格,制表符。

输出格式:

在一行中用以下格式输出最长的字符串:

The longest is: 最长的字符串

如果字符串的长度相同,则输出先输入的字符串。

输入样例:

5
li
wang
zhang
jin
xiang

输出样例:

The longest is: zhang

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

#include <iostream>
using namespace std;
string input, ans;
int n;

int main()
{
    ios::sync_with_stdio(false), cin.tie(0);
    cin >> n;
    while(n --)
    {
        cin >> input;
        ans = ans.size() >= input.size() ? ans : input;
    }
    cout << "The longest is: " << ans << endl;
    return 0;
}

7-99 计算职工工资 分数 15

给定N个职员的信息,包括姓名、基本工资、浮动工资和支出,要求编写程序顺序输出每位职员的姓名和实发工资(实发工资=基本工资+浮动工资-支出)。

输入格式:

输入在一行中给出正整数N。随后N行,每行给出一位职员的信息,格式为“姓名 基本工资 浮动工资 支出”,中间以空格分隔。其中“姓名”为长度小于10的不包含空白字符的非空字符串,其他输入、输出保证在单精度范围内。

输出格式:

按照输入顺序,每行输出一位职员的姓名和实发工资,间隔一个空格,工资保留2位小数。

输入样例:

3
zhao 240 400 75
qian 360 120 50
zhou 560 150 80

输出样例:

zhao 565.00
qian 430.00
zhou 630.00

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

#include <iostream>
#include <iomanip>
using namespace std;
int n;
string input;
double a, b, c;

int main()
{
    ios::sync_with_stdio(false), cin.tie(0);
    cin >> n;
    while (n--)
    {
        cin >> input >> a >> b >> c;
        cout << input << " " << fixed << setprecision(2) << a + b - c << endl;
    }
    return 0;
}

7-100 时间换算 分数 15

本题要求编写程序,以hh:mm:ss的格式输出某给定时间再过n秒后的时间值(超过23:59:59就从0点开始计时)。

输入格式:

输入在第一行中以hh:mm:ss的格式给出起始时间,第二行给出整秒数n(<60)。

输出格式:

输出在一行中给出hh:mm:ss格式的结果时间。

输入样例:

11:59:40
30

输出样例:

12:00:10

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

#include <iostream>
#include <string>
using namespace std;
string input;
int n;

int main()
{
    cin >> input >> n;
    int a = stoi(input.substr(0, 2));
    int b = stoi(input.substr(3, 2));
    int c = stoi(input.substr(6, 2));
    int ed = c + n;
    int na = a + ed / 3600, nb = b + ed / 60 % 60, nc = ed % 60;
    na += nb / 60, nb %= 60, na %= 24;
    printf("%02d:%02d:%02d\n", na, nb, nc);
    return 0;
}

  • 22
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值