Introduction

Hello, and welcome to our analysis lesson. In this lesson, we will be tackling a common problem in the field of string manipulations with TypeScript. We will learn how to find all occurrences of a substring within a larger string. The techniques you will master today can be utilized in numerous situations, such as text processing and data analysis. Are you ready to get started? Let's jump right in!

Task Statement and Description

Here is this unit's task: We have two lists of strings, both of identical lengths — the first containing the "original" strings and the second containing the substrings. Our goal is to detect all occurrences of each substring within its corresponding original string and, finally, return a list that contains the starting indices of these occurrences. Remember, the index counting should start from 0.

Example

Let's consider the following lists:
Original List: { "HelloWorld", "LearningTypeScript", "GoForBroke", "BackToBasics" }
Substring List: { "loW", "ear", "o", "Ba" }.

The following are the expected outputs:
In "HelloWorld", "loW" starts at index 3.
In "LearningTypeScript", "ear" starts at index 1.
In "GoForBroke", "o" appears at indices 1, 3, and 7.
In "BackToBasics", "Ba" starts at indices 0 and 6.

Thus, when findSubString(["HelloWorld", "LearningTypeScript", "GoForBroke", "BackToBasics"], ["loW", "ear", "o", "Ba"]) is invoked, the function should return:

[
    "The substring 'loW' was found in the original string 'HelloWorld' at position(s) 3.",
    "The substring 'ear' was found in the original string 'LearningTypeScript' at position(s) 1.",
    "The substring 'o' was found in the original string 'GoForBroke' at position(s) 1, 3, 7.",
    "The substring 'Ba' was found in the original string 'BackToBasics' at position(s) 0, 6."
]

Although this task may seem fairly straightforward, it can prove challenging. However, don't worry! We will break it down step by step.

Step-by-Step Solution: Step 1, Creating the Output List

Initially, we need to create a space to store our results. Can you think of a TypeScript data type that would be ideal for this task? That's right! An array of strings, with explicit typing, would be perfect!

TypeScript
function findSubString(origStrs: string[], substrs: string[]): string[] {
    let result: string[] = [];
}
Sign up
Join the 1M+ learners on CodeSignal
Be a part of our community of 1M+ users who develop and demonstrate their skills on CodeSignal