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

  • 相关阅读:
    v-date
    文字在图片上
    v-生命周期
    彭博接口分类
    如何指定vim 的查找是从上往下还是从下往上[z]
    查看linux版本
    git web找不到new project解决方法
    比特币运行原理[z]
    [Z]haproxy+keepalived高可用群集
    blockchain good article
  • 原文地址:https://www.cnblogs.com/caibird2005/p/2396030.html
Copyright © 2011-2022 走看看