zoukankan      html  css  js  c++  java
  • 网易真题之暗黑字符串

    题目如下:

    字符串只包含‘A’,'B','C',对于一个任意长度的字符串,如果存在连续的3个字符同时包含"A","B""C",那这个字符串是纯净的,否则称为暗黑字符串。比如“BCBBACBBCA”就是纯净字符串,“ABBAACCBBA”就是暗黑字符串。

    input:一个整数,表示字符串的长度

    output:暗黑字符串可能的个数

    分析:

    这种题目使用遍历或者排列组合求解,基本不可能,运算量巨大。可以通过查找关系,列出通项公式。

    以f(n)表示n位字符串存在的暗黑字符串的个数,有以下关系:f(n)=f(n-2)*3+(f(n-1)-f(n-2))*2

     

    代码如下:

    package project001;
    
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;
    import java.util.Scanner;
    
    public class Main05 {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
    //        System.out.println(Rev(120));
            Scanner in = new Scanner(System.in);
            while(in.hasNext()){
                int a = in.nextInt();
                
                System.out.println(getN(a));
            }
        }
        
        public static long getN(int k){
            List<Long> list = new ArrayList<Long>();
            list.add((long) 3);
            list.add((long) 9);
            list.add((long) 21);
            for(int i=1;i<=k;i++){
                if(k<=3) break;
                list.add(3*list.get(list.size()-2)+2*(list.get(list.size()-1)-(list.get(list.size()-2))));
            }
            return list.get(k-1);
        }
    }
  • 相关阅读:
    A1143. Lowest Common Ancestor
    三个loading小动画实例
    CSS之圣杯布局与双飞翼布局
    sublime个人快捷键
    响应式之表格
    CSS之column语法
    使用column简单实现瀑布流效果
    Flex 布局教程:实例篇(转)
    Flex 布局教程:语法篇(转)
    简单实现瀑布流效果
  • 原文地址:https://www.cnblogs.com/wuchaodzxx/p/5868031.html
Copyright © 2011-2022 走看看