美文网首页Algorithm
Codewars #■□ Pattern □■ : Wave

Codewars #■□ Pattern □■ : Wave

作者: 匠_心 | 来源:发表于2017-06-07 17:40 被阅读0次

    Task:

    Complete the pattern, using the special character

    ■ □
    In this kata, we draw some histogram of the sound performance of ups and downs.

    Rules:

    parameter waves The value of sound waves, an array of number, all number in array >=0.
    return a string, ■ represents the sound waves, and □ represents the blank part, draw the histogram from bottom to top.

    Example:

    draw([1,2,3,4])
    
    □□□■
    □□■■
    □■■■
    ■■■■
    
    draw([1,2,3,3,2,1])
    
    □□■■□□
    □■■■■□
    ■■■■■■
    
    draw([1,2,3,3,2,1,1,2,3,4,5,6,7])
    
    □□□□□□□□□□□□■
    □□□□□□□□□□□■■
    □□□□□□□□□□■■■
    □□□□□□□□□■■■■
    □□■■□□□□■■■■■
    □■■■■□□■■■■■■
    ■■■■■■■■■■■■■
    
    
    draw([5,3,1,2,4,6,5,4,2,3,5,2,1])
    
    □□□□□■□□□□□□□
    ■□□□□■■□□□■□□
    ■□□□■■■■□□■□□
    ■■□□■■■■□■■□□
    ■■□■■■■■■■■■□
    ■■■■■■■■■■■■■
    
    draw([1,0,1,0,1,0,1,0])
    
    ■□■□■□■□
    

    下面为具体的实现代码

    std::string draw(std::vector<int> waves)
    {
        std::string s;
        //求waves里的最大值
        auto max_iter = std::max_element(waves.begin(), waves.end());
        int max=*max_iter;
        for(int i=max;i>0;--i)
        {
          for(int j:waves)
          {
            if(j>=i)
            {
              s.append ("■");
            }else{
              s.append ("□");
            }
          }
          if(i>1)
            s.append("\n");
        }
        return s;
    }
    
    

    相关文章

      网友评论

        本文标题:Codewars #■□ Pattern □■ : Wave

        本文链接:https://www.haomeiwen.com/subject/gndafxtx.html