Leetcode 6.ZigZag Conversion

題目


ZigZag Conversion

題目大意:給定一個字符串和一個數(shù)字,將字符串排列成“S”形,數(shù)字代表“S”形型高度,最后返回將每一橫排相加的字符串。
例如輸入

PAYPALISHIRING 4

所以輸出應(yīng)該是

PINALSIGYAHRPI

代碼如下

public class Solution {
    public String convert(String s, int numRows) {
        if(numRows == 1)
            return s;
        String an = "";//儲存最后返回的字符串
        String[] str = new String[numRows];//儲存“S”形的每一行
        for(int i=0;i<numRows;i++)//給字符串?dāng)?shù)組初始化
            str[i] = "";
        int r = 0;//控制字符串?dāng)?shù)組的每一行
        int flag = 1;//標(biāo)記“S”形往上還是往下,即r是加還是減
        for(int i = 0;i < s.length();i++){
            str[r] = str[r] + s.charAt(i);
            //當(dāng)?shù)阶址當(dāng)?shù)組的開始或者結(jié)束時反向,即flag取相反數(shù)
            if(i != 0 && r == numRows-1 && flag == 1)
                flag = 0;
            else if(i != 0 && r == 0 && flag == 0)
                flag = 1;
            if(flag == 1)
                r++;
            if(flag == 0)
                r--;
        }
        //將字符串?dāng)?shù)組連接
        for(int i=0;i<str.length;i++)
            an = an+str[i];
        return an;
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容