Presentation is loading. Please wait.

Presentation is loading. Please wait.

Sit-in lab 4.  Given a number of strings containing only “a”, “b”, “c”, “d”  Check each string that it follows the pattern a n b m c m d n where m,

Similar presentations


Presentation on theme: "Sit-in lab 4.  Given a number of strings containing only “a”, “b”, “c”, “d”  Check each string that it follows the pattern a n b m c m d n where m,"— Presentation transcript:

1 Sit-in lab 4

2  Given a number of strings containing only “a”, “b”, “c”, “d”  Check each string that it follows the pattern a n b m c m d n where m, n >= 1  Use only stack OR queue

3  Look at pattern: a n b m c m d n  Notice that it is LIFO  So we use a Stack!  Many ways of solving with a stack… here we show one way

4  Process one character from the input String at a time.  For example:  for(int j = 0; j < s.length(); j++){ strCheck.nextChar(s.charAt(j)); }

5  If character is “a” ◦ We push to stack if  the stack is empty, or  the top of the stack is “a” ◦ Else is not valid string  If character is “b” ◦ Remember that we have a “b” (set a boolean flag) ◦ We push to stack if  the stack is NOT empty, and  the top of the stack is “a” or “b” ◦ Else is not valid string We need to check this so that things like “bc” will be caught

6  If character is “c” ◦ We pop from the stack if  the stack is NOT empty, and  the top of the stack is “b” ◦ Else is not valid string  If character is “d” ◦ We pop from the stack if  the stack is NOT empty, and  the top of the stack is “a”, and  there was a “b” read in (special check for things like “ad”) ◦ Else is not valid string

7  Finally, before concluding is valid string, check that stack is empty ◦ We need this to catch things like “aaaaaabbccd” (there will be many “a” left behind in the stack)

8

9


Download ppt "Sit-in lab 4.  Given a number of strings containing only “a”, “b”, “c”, “d”  Check each string that it follows the pattern a n b m c m d n where m,"

Similar presentations


Ads by Google