MathGroup Archive 2011

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Pattern matching in lists

  • To: mathgroup at smc.vnet.net
  • Subject: [mg116128] Re: Pattern matching in lists
  • From: Achilleas Lazarides <achilleas.lazarides at gmx.com>
  • Date: Thu, 3 Feb 2011 05:28:02 -0500 (EST)

If we define
lst = RandomInteger[{0, 10}, 100000];
str = ToString@FromDigits[lst];

One can simply partition the list and test:

StringMatchQ[str, ___ ~~ "1554367876" ~~ ___]
MemberQ[Partition[lst, Length@#, 1], #] &@
 {1, 5, 5, 4, 3, 6, 7, 8, 7, 6}

It's slower though. This is faster
randomname = Compile[{{lst, _Integer, 1}, {sublst, _Integer, 1}},
  	MemberQ[Partition[lst, Length@sublst, 1], sublst]]
but still slower than doing it with strings.

Surely there is a faster way though.


On Feb2, 2011, at 12:07 PM, Harvey P. Dale wrote:

> MemberQ easily tests whether a single integer appears in a list
> of integers.  Suppose, however, that I want to test not for a single
> integer but for two or more consecutive integers, e.g., to see whether
> {1,4,6} is a member of {1,3,2,6,5,1,4,6,3,9}.  I can do this by
> converting both lists into strings and then using string-matching
> functions, but is there some way of doing it directly without that
> conversion?
> 
> Thanks.
> 
> Harvey
> 
> Harvey P. Dale
> University Professor of Philanthropy and the Law
> Director, National Center on Philanthropy and the Law
> 139 MacDougal Street
> New York, N.Y. 10012-1076
> Tel: 212-998-6161
> Fax: 212-995-3149 
> =09
> 
> ______________________________________________________________________
> This email has been scanned by the MessageLabs Email Security System.
> For more information please visit http://www.messagelabs.com/email
> ______________________________________________________________________
> 



  • Prev by Date: How to export a large Grid/Table on a single PDF page?
  • Next by Date: Re: finding area in ListContourPlot
  • Previous by thread: Re: Pattern matching in lists
  • Next by thread: Re: Pattern matching in lists