z字形字符串:算法

巧妙利用的是list的下标,不同的位置,加的值不同。

package com.lhb.listnode;

import java.util.ArrayList;
import java.util.List;

/**
 * @author lhb
 * @date 2022/3/12
 */
public class ZListNode {
    public static String zstring(String s, int k){
        List<StringBuilder> list = new ArrayList<>();
        for (int i = 0; i< k ;i++) {
            list.add(new StringBuilder());
        }
        int flag = -1;
        int j = 0;
        for (int index = 0; index < s.length(); index++) {
            if (j == 0|| j == k - 1) {
                flag = -flag;
            }
            list.get(j).append(s.charAt(index));
            j+=flag;
        }
        for (int i = 1; i < k; i++) {
            list.get(0).append(list.get(i));
        }
        return list.get(0).toString();
    }
    public static void main(String[] args) {
        System.out.println(zstring("SLHGEAKLHIWE", 4));
    }
}

 

posted @ 2022-03-12 20:08  牵魂  阅读(46)  评论(0)    收藏  举报