zoukankan      html  css  js  c++  java
  • 题目1006:ZOJ问题(字符串处理)

    问题来源

      http://ac.jobdu.com/problem.php?pid=1006

    问题描述

      输入一个只包含'z','o','j'三种字符的字符串,判断是否符合要求。

    问题分析

      分析AC的三个条件,用a、b、c代表<a'z'b'j'c>中'o'的数量。条件一是(0,1,0),条件二是(x,1,x),把条件二代入条件三,可以得到(x,2,2x)满足条件,继续代入会有(x,3,3x)...
      于是我们发现一个问题,那就是a*b=c,注意b>0。
    注意事项:
      ①:判断字符串里面只有一个z一个j,且z在j后面。
      ②:中间有任何不符合要求的直接结束即可。

    参考代码

    //
    // Created by AlvinZH on 2017/4/27.
    // Copyright (c) AlvinZH. All rights reserved.
    //
    
    #include <iostream>
    #include <cstdio>
    #include <algorithm>
    using namespace std;
    
    int main()
    {
        char s[1005];
        int a,b,c;
        while(scanf("%s",s)!=EOF)
        {
            a=0;
            b=0;
            c=0;
            int i=0;
            while(s[i]=='o')
            {
                a++;
                i++;
            }
            if(s[i]!='z')
            {
                printf("Wrong Answer
    ");
                continue;
            }
            i++;
            while(s[i]=='o')
            {
                b++;
                i++;
            }
            if(s[i]!='j')
            {
                printf("Wrong Answer
    ");
                continue;
            }
            i++;
            while(s[i]=='o')
            {
                c++;
                i++;
            }
            if(s[i]!='')
            {
                printf("Wrong Answer
    ");
                continue;
            }
    
            if(a*b==c&&b>0) printf("Accepted
    ");
            else printf("Wrong Answer
    ");
        }
    }

    作者: AlvinZH

    出处: http://www.cnblogs.com/AlvinZH/

    本人Github:https://github.com/Pacsiy/JobDu

    本文版权归作者AlvinZH和博客园所有,欢迎转载和商用,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.

  • 相关阅读:
    设计模式浅谈
    链表的遍历(1)
    链表的删除(3)
    链表结构的反转(5)
    二叉树数组表示法
    循环链表的插入和删除
    链表的链接(2)
    双向链表内结点的删除(4)
    hdu1042
    数组和链表的区别
  • 原文地址:https://www.cnblogs.com/AlvinZH/p/6774968.html
Copyright © 2011-2022 走看看