zoukankan      html  css  js  c++  java
  • LeetCode --- Count And Say


    题目概述 :
    遍历字符串,先数,遇到相邻同样则++count。否则累加字符串。对于
    1 : 1个1 : "11"
    11 : "2个1" : "21"
    21 : "1个2 1个1": "1211" ...


    问题: 求第n项


    实现思路:
    外循环0...n,从第一项開始求,一直求到n
    遍历字符串str。
    count初始化为1,str2为空。


    推断相邻字符是否相等(注意处理末尾字符的情况),相等则++count,否则str2 += count.ToString()+str的上一位
    遍历之后将str=str2
    直到外循环的n结束为止


    实现代码:




    public string CountAndSay(int n) {
            
        if(n <= 0 ){
    		return string.Empty;
    	}
    	if(n == 1){
    		return "1";
    	}
        n = n-1;
        
    	var result = "1";
    	for(var i = 0; i < n ; i++){
    	var r = string.Empty;
    	var len = result.Length;
    	var count = 1;
    		for(var j = 1;j < len+1; j++){
    			if(j < len && result[j] == result[j-1]){
    				count ++;
    			}
    			else{
    				r += string.Format("{0}{1}",count,result[j-1]);
    				count=1;
    			}
    		}
    		
    	result = r;
    	}
    	
    	return result;
    	
    }


  • 相关阅读:
    mock数据
    Vuex
    React生命周期
    Vue基础知识
    前端面试题
    NodeJS巅峰之作
    Oracle数据库
    CSS Bootstrap jsp开发 前端遇到的一些问题。
    如何寻找node.js 与win7兼容的版本?eclipse中引入bootstrap。
    Window 常用命令
  • 原文地址:https://www.cnblogs.com/yutingliuyl/p/6769202.html
Copyright © 2011-2022 走看看