zoukankan      html  css  js  c++  java
  • 有趣的一道面试题,求连续的0或者连续的1的最大次数

    给几个0和1组成的字符串,要求用程序算成连续的0或者连续的1的最大次数,例如

    0011111000100100111    最大5
    010011100001101100     最大4
    00111110001001000000111     最大6

    我写了个ORACLE函数,勉强能实现这个功能,如下:

    create or replace function FUNC_LSX_TEST(in_str varchar) return number
    as
       v_i varchar2(1) ;
       v_j varchar2(1) ;
       v_return number :=1 ;
       i number :=1 ;
       j number :=1 ;
       v_flag number :=1 ;
       type t_tbl is table of number index by binary_integer;
       t_return t_tbl ;
      
    begin
      t_return(1) :=1 ;
       while i<length(in_str)
          loop
         v_i := substr(in_str,i,1) ;
          v_j := substr(in_str,i+1,1) ;
            if(v_j is not null) then
               if(v_i = v_j) then
                  t_return(i) := v_flag +1 ;
                  v_flag := v_flag +1 ;
                  i :=i+1 ;
               else
                 v_return := 1 ;
                 v_flag := 1 ;
                 t_return(i) :=1 ;
                 i :=i+1 ;
               end if ;
            else
              i :=i+1 ;
            end if ;
          end loop;
         
         
          while j < t_return.count -1 
           loop
            if (t_return(j) > v_return) then
               v_return := t_return(j) ;
               j := j+1 ;
             end if ;
           j := j+1 ;
           end loop;

      return v_return ;
    end;

    select FUNC_LSX_TEST('00111110001001000000111') from dual ;
    6

  • 相关阅读:
    递归练习:走台阶
    递归练习:计算最大公约数和最小公倍数
    递归练习:逆序输出一个十进制数的各位数字
    m4, autoconf
    Makefile 和 CMakeLists.txt
    Java中的String pool
    小米路由Mini刷Breed, 潘多拉和LEDE
    Centos 编译LEDE/OpenWrt
    Centos6下编译安装gcc6.4.0
    IntelliJ IDEA遇到Unable to parse template “Class”错误
  • 原文地址:https://www.cnblogs.com/caibird2005/p/2396030.html
Copyright © 2011-2022 走看看