-
AlgorithmsLogicSearchStringsData Types
Code fun findFirstSubString(string: String, subString: String): Int? = if (subString.isEmpty()) null else subString.toRegex().find(string)?.range?.first
Test Cases import org.junit.Assert import org.junit.Test class SimpleSubStringSearchKtTest { fun `Substring longer than string`() { Assert.assertNull(findFirstSubString("12345", "123456")) Assert.assertNull(findFirstSubString("54321", "123456")) } fun `Empty string`() { Assert.assertNull(findFirstSubString("", "123456")) } fun `Empty substring`() { Assert.assertNull(findFirstSubString("12323123", "")) } fun `Empty substring and string`() { Assert.assertNull(findFirstSubString("", "")) } fun `Correct finding`() { Assert.assertEquals(findFirstSubString("12345", "123"), 0) Assert.assertEquals(findFirstSubString("54321321", "321"), 2) Assert.assertEquals(findFirstSubString("123456789ABCDE123456789", "ABCDE"), 9) Assert.assertEquals(findFirstSubString("123456789ABCDE123456789", "A"), 9) Assert.assertEquals(findFirstSubString("123456789ABCDE123456789", "a"), null) Assert.assertEquals(findFirstSubString("111234", "1234"), 2) } }
Output:
-
Code fun findFirstSubString(string: String, subString: String): Int? {val stringArray = string.toList()val substringArray = subString.toList()if (stringArray.size < substringArray.size || stringArray.isEmpty() || substringArray.isEmpty()) {return null}var counter = 0var startIndex = 0var i = 0while (i < stringArray.size) {if (stringArray[i] == substringArray[counter]) {if(counter == 0) {startIndex = i}if ((counter + 1) == substringArray.size) {return startIndex}counter++i++}else {if (counter > 0) {i = startIndex + 1}else {i++}counter = 0startIndex = 0}println(i)}return null}- fun findFirstSubString(string: String, subString: String): Int? =
- if (subString.isEmpty()) null
- else subString.toRegex().find(string)?.range?.first
- All
- {{group.name}} ({{group.count}})
This comment has been reported as {{ abuseKindText }}.
Show
This comment has been hidden. You can view it now .
This comment can not be viewed.
- |
- Reply
- Edit
- View Solution
- Expand 1 Reply Expand {{ comments?.length }} replies
- Collapse
- Remove
- Remove comment & replies
- Report
{{ fetchSolutionsError }}