Given: List L of pairs of characters String S Output: TRUE if S is a valid string, FALSE otherwise. A string is considered valid if each character in the string can be paired with another character in the string, where the pair belongs to the input list L. Furthermore, two pairs cannot cross each other. In other words, a pair most completely enclose another, or be completely separate. Design and implement an efficient dynamic programming solution to this problem. Examples: Input L: (a b) (b c) (c d) (a a) Input S: aaba
Given:
- List L of pairs of characters
- String S
Output: TRUE if S is a valid string, FALSE otherwise.
A string is considered valid if each character in the string can be paired with another character in the string, where the pair belongs to the input list L.
Furthermore, two pairs cannot cross each other. In other words, a pair most completely enclose another, or be completely separate.
Design and implement an efficient dynamic programming solution to this problem.
Examples:
Input L: (a b) (b c) (c d) (a a)
Input S: aaba
Output: True (pairs shown color-coded: aaba, “aa” fully encloses “ab”)
Input L: (a b) (b c) (c d) (a a)
Input S: abcaad
Output: True (pairs shown color-coded: abcaad, “ab” is separate from the other pairs)
Input L: (a b) (b c) (c d) (a a)
Input S: acbd
Output: False (acbd is not valid because the pairs cross each other.)
Input L: (a b) (b c) (c d) (a a)
Input S: aaac
Output: False
Trending now
This is a popular solution!
Step by step
Solved in 4 steps with 2 images