专栏首页奔跑的蛙牛技术博客rust leetcode zigzag-conversion

rust leetcode zigzag-conversion

每日小刷

leetcode

Runtime

Memory

16ms

2.5m

use std::cmp;

impl Solution {
pub fn convert(s: String, num_rows: i32) -> String {
        if num_rows == 1 {
            return s;
        }

        let num_rows: usize = cmp::min(s.len(), num_rows as usize);

        let mut zig_zag: Vec<String> = vec![String::from(""); num_rows];

        let text: Vec<char> = s.chars().collect();

        let mut cur_row = 0;
        let mut direction = false;
        for i in 0..text.len() {
            zig_zag[cur_row] = zig_zag[cur_row].clone() + &text[i].to_string();
            
            if cur_row == (num_rows-1) || cur_row == 0{
                direction = !direction;
            }
            if direction {
                cur_row += 1;
            } else {
                cur_row -= 1;
            }
        }
        let mut result = String::from("");

        for elem in zig_zag.iter() {
            result += elem;
        }
        result
    }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • rust leetcode median-of-two-sorted-arrays

    用户2436820
  • rust leetcode 最大回文序列

    用户2436820
  • rust leetcode Add Two Numbers #2

    用户2436820
  • Swift学习笔记

      swift3.0中文翻译学习网站:http://www.swift51.com/swift3.0/

    tandaxia
  • 【支付系统设计从0到1】支付系统账户体系设计(上)

    在银行、支付公司以及电商平台的支付系统中,如果不是只做交易转发,而是真正需要做账务处理清结算,一定会涉及到账户体系的设计,一套好的账户体系应该是与业务无关的。账...

    金融民工小曾
  • Memcached基础了解

    老七Linux
  • IDEALENS连发两款VR一体机,Pro版搭载三星顶级VR处理器

    VRPinea
  • 想进行ATAC实战分析却苦于没有实际数据,看这里

    于数据分析而言,实战操作是最佳的学习方式。在自己没有测序数据的情况下,可以从公共数据库中寻找我们需要的数据集。最为广泛使用的公共数据库包括GEO, TCGA, ...

    生信修炼手册
  • STM32CubeMX入门教程(一)

    01 STM32CubeMX软件简介 ABOUT STM32CubeMX STM32CubeMX是ST公司推出的一种自动创建单片机工程及初始化代码的工具,适用于...

    企鹅号小编
  • 快速理解Spring中的FactoryBean接口

    很多java开发者在使用Spring框架中都见过后缀为FactoryBean的类,比如Mybatis-Spring中的SqlSessionFactoryBean...

    码农小胖哥

扫码关注云+社区

领取腾讯云代金券