• leetcode 38 Count and Say ---java


    这道题主要就是求一个序列,题目得意思就是

    1 --> 11 --> 21 --> 1211 -->     111221 -->       312211 --> .....

      1个1     2个1     1个2,1个1   1个1,1个2,2个1    3个1,2个2,1个1  依次类推

    题目很简单,但是为了得到较好的结果,还是纠结了一段时间

    public class countAndSay {
    	 public String countAndSay(int n) {
    	        String num = "1";
    	       for(int m = 1; m<n ; m++ ){
    	            num = getString(num);
    	        }
    	        return num;
    	    }
    	    public String getString(String num){
    		    	StringBuffer result = new StringBuffer();
    		    	int j = 0 , i = 0 , n = 0;
    		        while( i< num.length()){
    		        	char ch = num.charAt(i);
    		        	while( j < num.length() && ch == num.charAt(j) )
    		        	    j++;
    		        	n = j - i;
    		        	result.append(n).append(ch-'0');
    		        	i = j;
    		        }
    		        return result.toString();
    		    } 
    }
    

     所以得出的结论就是    1:StringBuffer 在有些情况下优于 String  主要就是在对一个字符串进行多次操作的时候应该用StringBuffer,速度较快

                    2:就是ch == num.charAt(j) 与 num.charAt(j) == ch 并不一样,前者要优于后者。

  • 相关阅读:
    以查询功能谈下,三层架构中的工厂模式与其中反射的应用
    结对编程
    第四周周结
    知识思考
    自我介绍
    本周开发工作及内容
    第三周周结
    启航
    如何写出健壮的Java代码
    CentOS x64上Matlab R2015b的镜像安装方法与卸载
  • 原文地址:https://www.cnblogs.com/xiaoba1203/p/5591938.html
Copyright © 2020-2023  润新知