Re: I need help! Substrings

turbosol <[email protected]> Tue, 29 May 2007 21:23:22 -0700 (PDT)
Newsgroups gmane.comp.lang.sml.smlnj
Message-ID <[email protected]>
i appreciate the help, but i must admit, I am a definite beginner in this
class, and i am completely lost.  also, we are not allowed to use any built
in librbaries like string.sub, or anything like that.  the -1 is only
returned because that is what is asked of me to do it.  I have the basic
idea as to how to do the program, its just the syntax that is screwing me
up.  If this were java, i would have no problem. thanks for the pointers,
but any more help would be much appreciated.



David MacQueen-2 wrote:
> 
> This is almost the same as the library function String.isSubstring,  
> except for
> the type.
> 
> Here is a hint (for a fairly simple, but not optimal solution).   
> Define two auxiliary functions
> 
> val firstMatch : char * string * int -> int option
> fun firstMatch(c: char, s: string, i: int) : int option =
>         find the index of the first occurrence of character c in  
> string s starting at index i.
> 	if c is found at index j in s, return SOME j, otherwise return NONE
> 
> val checkRest : string * int * string * int -> bool
> fun checkRest(s1, s2, i) : bool =
>        check that all the characters in string s1, starting at index  
> 1 (i.e. the second
>        character) are matched by the corresponding characters in  
> string s2, starting
>        at index i.  return true if so, or false if there is a  
> mismatch or s2 is exhausted
>        before s1
> 
> Once you have these, it should be straightforward to put them  
> together to define
> the function subString function you want.
> 
> By the way, returning -1 for the failure case is bad style.  Much  
> better to return
> an int option (NONE or SOME) instead, as I suggested for firstMatch  
> above.
> 
> Good luck.
> 
> Dave MacQueen
> 
> On May 29, 2007, at 3:41 PM, turbosol wrote:
> 
>>
>> So i signed up for my last compscience class so i can graduate...  
>> the class i
>> needed was canceled so i was put into a more difficult class for  
>> majors.
>> Comp science is my minor... anyways, I am currently doing twice the  
>> work i
>> would normally do in half the time.  I am lost.  if anyone can help  
>> me, i
>> would appreciate it SOOO much.
>>
>> I need to write a function SubString : string * string -> int that  
>> checks
>> whether the first string is a substring of the second (case  
>> sensitive).
>> return the index position (starting from 0) if the string is a  
>> substring or
>> -1 otherwise.  for multiple occurances, just return the index of  
>> the first
>> appearance.  you may assume both input parameters are strings.
>>
>> subString("ab","abcdefg")=> 1
>> subString("aaa","aaaa")=>0
>> subString("bc","absge") =>-1
>> subString("ab","cdabd") => 2
>> -- 
>> View this message in context: http://www.nabble.com/I-need-help%21-- 
>> Substrings-tf3836438.html#a10862221
>> Sent from the SML/NJ mailing list archive at Nabble.com.
>>
>>
>> ---------------------------------------------------------------------- 
>> ---
>> This SF.net email is sponsored by DB2 Express
>> Download DB2 Express C - the FREE version of DB2 express and take
>> control of your XML. No limits. Just data. Click to get it now.
>> http://sourceforge.net/powerbar/db2/
>> _______________________________________________
>> Smlnj-list mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/smlnj-list
>>
> 
> 
> -------------------------------------------------------------------------
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and take
> control of your XML. No limits. Just data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
> _______________________________________________
> Smlnj-list mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/smlnj-list
> 
> 

-- 
View this message in context: http://www.nabble.com/I-need-help%21--Substrings-tf3836438.html#a10867231
Sent from the SML/NJ mailing list archive at Nabble.com.


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/