NPR puzzle

Dick Kriesel dick.kriesel at mail.com
Thu Jul 21 17:19:37 EDT 2005


Here's a solution that takes 10 milliseconds on a 1GHz PowerBook G4.

The main reason for the speed improvement over previous solutions is that
array look-ups are typically faster than string searches.

  put the milliseconds into tMilliseconds
  repeat for each line tSymbol in field 2
    put "true" into tSymbolArray[tSymbol]
  end repeat
  repeat for each word tWord in field 1
    if tSymbolArray[char 1 to 2 of tWord] then
      if tSymbolArray[char 3 to 4 of tWord] then
        if tSymbolArray[char 5 to 6 of tWord] then
          if tSymbolArray[char 7 to 8 of tWord] then
            if tSymbolArray[char 9 to 10 of tWord] then
              put tWord & return after tHits
            end if
          end if
        end if
      end if
    end if
  end repeat
  put the milliseconds - tMilliseconds \
      into tElapsedMilliseconds
  put number of lines in tHits && "hits in" \
      && tElapsedMilliseconds && "milliseconds" \
      & return & return & tHits

-- Dick





More information about the use-livecode mailing list