前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C++版 - UVa1585 Score - 题解

C++版 - UVa1585 Score - 题解

作者头像
Enjoy233
发布2019-03-05 15:58:09
4080
发布2019-03-05 15:58:09
举报

C++版 - UVa1585 Score - 题解

《算法竞赛入门经典(第二版)》 习题3-1 得分(ACM/ICPC Seoul 2005,UVa1585)

问题描述: 给出一个由O和X组成的串(长度为1~80),统计得分。每个O的得分为目前连续出现的O的个数,X的得分为0。例如:OOXXOXXOOO的得分为1+2+0+0+1+0+0+1+2+3。

Sample Input

代码语言:javascript
复制
5   
OOXXOXXOOO  
OOXXOOXXOO  
OXOXOXOXOXOXOX  
OOOOOOOOOO  
OOOOXOOOOXOOOOX

Sample Output

代码语言:javascript
复制
10
9
7
55
30

在线提交:

https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=submit_problem&problemid=4460

思路: 扫描当前行的字符串,如果遇到字符’O’就让计数器count增加1,然后将count加入到sum中,如果遇到’X’,则需将count置为0.

已AC代码:

代码语言:javascript
复制
#include<iostream>
#include<string>
using namespace std;

int main()
{
    int numOfLines;
    cin >> numOfLines;
    if (numOfLines <= 0)
        return 0;

    while (numOfLines--)
    {
        string s;
        cin >> s;
        int sum = 0;
        int count = 0;
        int len = s.size();
        for (size_t i = 0; i < len; i++)
        {
            if (s[i] == 'O')
            {
                count++;
                sum += count;
            }
            else
                count = 0;
        }
        cout << sum << endl;
    }

    return 0;
}

Runnig result:

#

Problem

Verdict

Language

Run Time

Submission Date

21951689

1585

Score

Accepted

C++11

0.000

2018-09-13 06:18:15

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年09月13日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • C++版 - UVa1585 Score - 题解
  • Sample Input
  • Sample Output
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档