• 9、涂棋盘--2017网易春招


    [编程题] 涂棋盘
    时间限制:1秒
    空间限制:32768K
    小易有一块n*n的棋盘,棋盘的每一个格子都为黑色或者白色,小易现在要用他喜欢的红色去涂画棋盘。小易会找出棋盘中某一列中拥有相同颜色的最大的区域去涂画,帮助小易算算他会涂画多少个棋格。 
    输入描述:
    输入数据包括n+1行:
    第一行为一个整数n(1 ≤ n ≤ 50),即棋盘的大小
    接下来的n行每行一个字符串表示第i行棋盘的颜色,'W'表示白色,'B'表示黑色

    输出描述:
    输出小易会涂画的区域大小
     
    输入例子:
    3 BWW BBB BWB
     
    输出例子:
    3
    解题思路:本题求每一列连续相同字符的子串最长值,然后再求出所有列中最长的,即为结果
    本题主要遇到以下几个问题
    1)求得没考虑连续,只是求了W个数B个数,求最大值了
    2)求连续的,给每一列记录的m[j]赋值时用的count,其实应该是m[j]和count的最大的
    3)每次处理后count置为初始1
    4)memset初始化,最后一个参数为sizof(类型)*数组个数
     1 #include <iostream>
     2 #include <algorithm>
     3 #include <memory.h>
     4 using namespace std;
     5 
     6 int main()
     7 {
     8     int n;
     9     while(cin>>n)
    10     {
    11         char a[n][n];
    12         for(int i=0;i<n;i++)
    13         {
    14             for(int j=0;j<n;j++)
    15             {
    16                 cin>>a[i][j];
    17             }
    18         }
    19 
    20         int m[n];
    21         memset(m,0,sizeof(int)*n);
    22         int count = 1;
    23         for(int j=0;j<n;j++)
    24         {
    25             for(int i=0;i<n-1;i++)
    26             {
    27                 if(a[i+1][j] == a[i][j])
    28                 {
    29                     count++;
    30                     if(i==n-2)
    31                     {
    32                         m[j] = max(m[j],count);
    33                     }
    34                 }
    35                 else
    36                 {
    37                     m[j] = max(m[j],count);
    38                     count = 1;
    39                 }
    40             }
    41             count = 1;
    42         }
    43         count = m[0];
    44         for(int i=1;i<n;i++)
    45         {
    46             if(m[i]>count)
    47                 count = m[i];
    48         }
    49         cout<<count<<endl;
    50     }
    51 }
  • 相关阅读:
    如何解决错误【selenium.common.exceptions.SessionNotCreatedException】
    VSFTP常用功能及参数配置
    ROS白名单服务端PHP脚本,客户端ROS脚本
    ocserver标准配置文件
    linux send与recv函数详解
    LINUX 恢复rm删除的文件
    C语言实现md5函数代码
    linux c语言获取CPU,内存,网速,磁盘使用,IO
    linux c语言fork socket 并发回射服务器
    杨惠兰不值得任何人付出
  • 原文地址:https://www.cnblogs.com/qqky/p/6928533.html
Copyright © 2020-2023  润新知