给出一个字符串s和一个单词单词列表,找出所有子字符串的开始索引在s中,即每个单词的连接在单词中,完全没有任何插入字符.
This problem can be solved using a sliding window approach.

First, we count the frequency of each word in words using a dictionary.

Then, we iterate over all possible starting indices in s and maintain a window of length len(words)*len(words[0]), which is the total length of all words concatenated.

At each position in the window, we check if the substring starting at that position can be formed by concatenating all words in words exactly once. To do this, we keep another dictionary to count the frequency of each word in the current window.

If the current window matches the desired concatenation, we add the starting index to the result.

Here is the Python code:

```
def findSubstring(s: str, words: List[str]) -> List[int]:
    if not s or not words:
        return []
    
    word_freq = {}
    for word in words:
        word_freq[word] = word_freq.get(word, 0) + 1
    
    word_len = len(words[0])
    total_len = word_len * len(words)
    res = []
    
    for i in range(len(s) - total_len + 1):
        window_freq = {}
        j = i
        while j < i + total_len:
            curr_word = s[j:j+word_len]
            if curr_word not in word_freq:
                break
            
            window_freq[curr_word] = window_freq.get(curr_word, 0) + 1
            if window_freq[curr_word] > word_freq[curr_word]:
                break
            
            j += word_len
        
        if j == i + total_len:
            res.append(i)
    
    return res
```