题目:

提交01:

 class Solution {

     public String convert(String s, int numRows) {
int length = 2*numRows-2;
if(numRows==1||s.equals("")||s.length()<=numRows){
return s;
}
int loop = s.length()/length;
StringBuilder str = new StringBuilder(); for(int i=0;i<numRows;i++){
str.append(s.charAt(i));
if(i!=0&&i!=numRows-1&&length-i<s.length()) {
str.append(s.charAt(length - i));
} for(int k=1;k<loop+1;k++){
if(length*k+i<s.length()){
str.append(s.charAt(length*k+i));
} if(i!=0&&i!=numRows-1&&length*(k+1)-i<s.length()){
str.append(s.charAt(length*(k+1)-i));
} }
}
return str.toString();
} }

代码有点乱,很多地方需要改进

提交02

 class Solution {

     public String convert(String s, int n) {
if(n==1||s.equals("")||s.length()<=n){
return s;
}
char[] ch =s.toCharArray();
int length = 2*n-2;
StringBuilder str = new StringBuilder();
for(int i=0;i<n;i++){
for(int k=0;k<=ch.length/length;k++){
int index = length*k+i;
if(index<ch.length){
str.append(ch[index]);
}
index = length*(k+1)-i;
if(i!=0&&i!=n-1&&index<s.length()){
str.append(ch[index]);
}
}
}
return str.toString();
} }

并没有啥实质性的提升。题目就是找规律的问题,或许换个思路

06. Z字型变换的更多相关文章

  1. [LeetCode] Z字型变换

    题目内容: 将字符串 "PAYPALISHIRING" 以Z字形排列成给定的行数: P A H N A P L S I I G Y I R 之后从左往右,逐行读取字符:" ...

  2. leetcode 6 z字型变换

    执行用时 :64 ms, 在所有 Python3 提交中击败了99.74%的用户由题目可知 我们的最终字符串会被摆成 numRows 行,那我们理解为 最终结果是numRows个字符串相加 先建立等于 ...

  3. leetcode 6/300 Z字型变换 py

    目录 题目说明 方法一:利用flag 题目说明 方法一:利用flag 简单来说就是利用flag来表示方向,真的神来之笔. class Solution: def convert(self, s: st ...

  4. LeetCode OJ:ZigZag Conversion(字符串的Z字型转换)

    The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like ...

  5. 算法:Z字型(Zigzag)编排

    问题:给定 n 行和 m 列的二维数组矩阵.如图所示,以 ZIG-ZAG 方式打印此矩阵. 从对称的角度来看,通过反复施加滑行反射可以从简单的图案如线段产生规则的之字形. 主要思想:算法从(0, 0) ...

  6. LeetCode ZigZag Conversion(将字符串排成z字型)

    class Solution { public: string convert(string s, int nRows) { string a=""; int len=s.leng ...

  7. LeetCode--006--Z字型变换(java)

    将一个给定字符串根据给定的行数,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下: L C I R E T ...

  8. 281. Zigzag Iterator z字型遍历

    [抄题]: Given two 1d vectors, implement an iterator to return their elements alternately. Example: Inp ...

  9. YTU 2898: C-Z型变换

    2898: C-Z型变换 时间限制: 1 Sec  内存限制: 128 MB 提交: 53  解决: 15 题目描述 让我们来玩个Z型变换的游戏,游戏的规则如下: 给你一个字符串,将它以Z字型的形状不 ...

随机推荐

  1. cgroup的学习笔记

    1.cgroup是什么? cgroup是一个linux内核提供的机制.目的是为了做资源隔离,资源限制,资源记录. 2.cgroup怎么安装? yum install cgroup service cg ...

  2. Java经典面试笔试题及答案

    1.什么是对象序列化,为什么要使用? 所谓对象序列化就是把一个对象以二进制流的方式保存到硬盘上.好处:方便远程调用. 2.值传递与引用传递的区别? 所谓值传递就是把一个对象的值传给一个新的变量,但是系 ...

  3. 关于jsp的action如何调用servlet的自定义方法

    一.起因: 希望将同属于某个模块的简单功能整合到一起,不创建太多的servlet 二.问题描述: action或者method属性是否能直接调用自定义方法 三.补充知识点: 查询得知:servelet ...

  4. Springmvc-crud-04错误(路径变量)

    错误: 原因:接收不到restful风格请求的参数(id值),需要添加路径变量注解 @RequestMapping(value="/book/{id}",method=Reques ...

  5. bm坏字符 , Horspool算法 以及Sunday算法的不同

    bm坏字符 , Horspool算法 以及Sunday算法的不同 一.bm中的坏字符规则思想 (1)模式串与主串从后向前匹配 (2)发现坏字符后,如果坏字符不存在于模式串中:将模式串的头字符与坏字符后 ...

  6. ACM-ICPC实验室20.2.19测试-图论

    B.Harborfan的新年拜访Ⅱ 就是一道tarjan缩点的裸题. 建图比较麻烦 以后遇到这种建图,先用循环把样例实现出来,再对着循环写建图公式 #include<bits/stdc++.h& ...

  7. [Linux kali] linux kali [KDE]一些软件切换输入法无效

    #开始 今天最终是在实体机安装了Kali Kali的默认桌面是GNOME桌面 但是用久了windows桌面用这个实在是不习惯 然后看到了kali有自带KDE版本的 然后就下载了一个尝尝鲜 之前在Deb ...

  8. Android学习03

    ToggleButton和Switch 状态开关ToggleButton与开关switch也是由button按钮派生出来的,因此他们的本质也是按钮,button支持的各种属性,方法toggleButt ...

  9. 消息队列(五)--- RocketMQ-消息存储4

    问题 index 文件有什么作用,结构又是如何 概述 index 文件主要是为了 message key 服务的,rocketmq 发送消息的时候可以带上 key , messge key 是为了标识 ...

  10. 第八届极客大挑战 Re

    0x01.Writeup-RE-CM_2 题目: 解题思路: 1.这个是经过xor的,王老师提示说用xortool,于是放进kali,装好之后执行 xortool CM_2.exe -b, 0.out ...