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

  • 相关阅读:
    二进制安装postgresql
    php mongodb扩展安装
    coinbase交易冻结时间
    linux服务器及工具常用命令
    PM2下使用 执行npm命令
    phpstorm安装PHP_CodeSniffer
    TP5 save遍历更新,过滤相邻重复字段,问题汇总
    mysqlbinlog 数据恢复
    设计模式之状态机模式
    关于c++中sleep_for函数的总结分析
  • 原文地址:https://www.cnblogs.com/caibird2005/p/2396030.html
Copyright © 2011-2022 走看看