Java日记2018-07-25

2018-07-25  本文已影响0人  hayes0420

count andy say

package com.lyc.letcode;

public class Solution0725 {
    public static String countaSay(int n){
        if(n<0) return null;
        int start =1;
        String cur = "1";
        while(start<n){
            StringBuilder res = new StringBuilder();
            int cnt =1;
            for(int j=1;j<cur.length();j++){
                if(cur.charAt(j)==cur.charAt(j-1)){
                    cnt++;
                } else{
                    res.append(cnt);
                    res.append(cur.charAt(j-1));
                    cnt=1;
                }
            }
            res.append(cnt);
            res.append(cur.charAt(cur.length()-1));
            cur = res.toString();
            start++;
        }
        return cur;
    }
    public static void main(String[] args){
        System.out.println(countaSay(1));
    }

}


Evaluate Reverse Polish Notation 计算逆波兰表达式
["2", "1", "+", "3", "*"] -> ((2 + 1) * 3) -> 9
["4", "13", "5", "/", "+"] -> (4 + (13 / 5)) -> 6

栈的完美应用,从前往后遍历数组,遇到数字则压入栈中,遇到符号,则把栈顶的两个数字拿出来运算,把结果再压入栈中,直到遍历完整个数组,栈顶数字即为最终答案。

上一篇下一篇

猜你喜欢

热点阅读