Re: [algogeeks] Directory Structure
1.Create a Tree structure.Each node representing a directory under its respective parent for first N lines. 2.For M lines ,match the maximum possible path with the mth(m E M) directory path.Keep adding the nodes and increase the count. On Thu, Feb 17, 2011 at 6:23 PM, Akshata Sharma akshatasharm...@gmail.comwrote: On Unix computers, data is stored in directories. There is one root directory, and this might have several directories contained inside of it, each with di fferent names. These directories might have even more directories contained inside of them, and so on. A directory is uniquely identified by its name and its parent directory (the directory it is directly contained in). This is usually encoded in a path, which consists of several parts each preceded by a forward slash ('/'). The final part is the name of the directory, and everything else gives the path of its parent directory. For example, consider the path: /home/facebook/people This refers to the directory with name people in the directory described by /home/facebook, which in turn refers to the directory with name facebook in the directory described by the path /home. In this path, there is only one part, which means it refers to the directory with the name home in the root directory. To create a directory, you can use the mkdir command. You specify a path, and then mkdir wi ll create the directory described by that path, but only if the parent directory al ready exists. For example, i f you wanted to create the /home/facebook/people and /home/facebook/tech directories from scratch, you would need four commands: mkdir /home mkdir /home/facebook mkdir /home/facebook/people mkdir /home/facebook/tech Given the full set of directories already existing on your computer, and a set of new directories you want to create if they do not already exist, how many mkdir commands do you need to use? Input The first line of the input gives the number of test cases, T. T test cases follow. Each case begins with a line containing two integers N and M, separated by a space. The next N lines each give the path of one directory that already exists on your computer. This list will include every directory already on your computer other than the root directory. (The root directory is on every computer, so there is no need to l ist it explicitly.) The next M lines each give the path of one directory that you want to create. Each of the paths in the input is formatted as in the problem statement above. Speci fically, a path consists of one or more lower - case alpha-numeric strings (i .e., strings containing only the symbols 'a'-'z' and '0'-'9'), each preceded by a single forward slash. These alpha-numeric strings are never empty. Output For each test case, output one l ine containing Case #x: y, where x is the case number (starting from 1) and y is the number of mkdir you need. Note: If a directory is listed as being on your computer, then its parent directory will also be listed, unless the parent is the root directory. INPUT 2 1 2 /chicken /chicken/egg /chicken 1 3 /a /a/b /a/c /b/b OUTPUT Case #1: 1 Case #2: 4 -- You received this message because you are subscribed to the Google Groups Algorithm Geeks group. To post to this group, send email to algogeeks@googlegroups.com. To unsubscribe from this group, send email to algogeeks+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/algogeeks?hl=en. -- Thanks Regards Nikhil Agarwal Senior Undergraduate Computer Science Engineering, National Institute Of Technology, Durgapur,India http://tech-nikk.blogspot.com http://beta.freshersworld.com/communities/nitd -- You received this message because you are subscribed to the Google Groups Algorithm Geeks group. To post to this group, send email to algogeeks@googlegroups.com. To unsubscribe from this group, send email to algogeeks+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/algogeeks?hl=en.
Re: [algogeeks] Directory Structure
I think we can build a n-ary tree from the n directory paths that are already available in the computer and then for each of the m directory paths we can traverse the tree up until the directory which is already available in the tree and then count the remaining directories in the path. 1 Question : Can a test case be like this ? 1 2 /chicken /chicken/egg /chicken/egg/chicken if yes then while processing second of the 2 directories that should be created, should we consider egg folder is already created while processing the previous one ? On Thu, Feb 17, 2011 at 6:23 PM, Akshata Sharma akshatasharm...@gmail.comwrote: On Unix computers, data is stored in directories. There is one root directory, and this might have several directories contained inside of it, each with di fferent names. These directories might have even more directories contained inside of them, and so on. A directory is uniquely identified by its name and its parent directory (the directory it is directly contained in). This is usually encoded in a path, which consists of several parts each preceded by a forward slash ('/'). The final part is the name of the directory, and everything else gives the path of its parent directory. For example, consider the path: /home/facebook/people This refers to the directory with name people in the directory described by /home/facebook, which in turn refers to the directory with name facebook in the directory described by the path /home. In this path, there is only one part, which means it refers to the directory with the name home in the root directory. To create a directory, you can use the mkdir command. You specify a path, and then mkdir wi ll create the directory described by that path, but only if the parent directory al ready exists. For example, i f you wanted to create the /home/facebook/people and /home/facebook/tech directories from scratch, you would need four commands: mkdir /home mkdir /home/facebook mkdir /home/facebook/people mkdir /home/facebook/tech Given the full set of directories already existing on your computer, and a set of new directories you want to create if they do not already exist, how many mkdir commands do you need to use? Input The first line of the input gives the number of test cases, T. T test cases follow. Each case begins with a line containing two integers N and M, separated by a space. The next N lines each give the path of one directory that already exists on your computer. This list will include every directory already on your computer other than the root directory. (The root directory is on every computer, so there is no need to l ist it explicitly.) The next M lines each give the path of one directory that you want to create. Each of the paths in the input is formatted as in the problem statement above. Speci fically, a path consists of one or more lower - case alpha-numeric strings (i .e., strings containing only the symbols 'a'-'z' and '0'-'9'), each preceded by a single forward slash. These alpha-numeric strings are never empty. Output For each test case, output one l ine containing Case #x: y, where x is the case number (starting from 1) and y is the number of mkdir you need. Note: If a directory is listed as being on your computer, then its parent directory will also be listed, unless the parent is the root directory. INPUT 2 1 2 /chicken /chicken/egg /chicken 1 3 /a /a/b /a/c /b/b OUTPUT Case #1: 1 Case #2: 4 -- You received this message because you are subscribed to the Google Groups Algorithm Geeks group. To post to this group, send email to algogeeks@googlegroups.com. To unsubscribe from this group, send email to algogeeks+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/algogeeks?hl=en. -- You received this message because you are subscribed to the Google Groups Algorithm Geeks group. To post to this group, send email to algogeeks@googlegroups.com. To unsubscribe from this group, send email to algogeeks+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/algogeeks?hl=en.
[algogeeks] Directory Structure
On Unix computers, data is stored in directories. There is one root directory, and this might have several directories contained inside of it, each with di fferent names. These directories might have even more directories contained inside of them, and so on. A directory is uniquely identified by its name and its parent directory (the directory it is directly contained in). This is usually encoded in a path, which consists of several parts each preceded by a forward slash ('/'). The final part is the name of the directory, and everything else gives the path of its parent directory. For example, consider the path: /home/facebook/people This refers to the directory with name people in the directory described by /home/facebook, which in turn refers to the directory with name facebook in the directory described by the path /home. In this path, there is only one part, which means it refers to the directory with the name home in the root directory. To create a directory, you can use the mkdir command. You specify a path, and then mkdir wi ll create the directory described by that path, but only if the parent directory al ready exists. For example, i f you wanted to create the /home/facebook/people and /home/facebook/tech directories from scratch, you would need four commands: mkdir /home mkdir /home/facebook mkdir /home/facebook/people mkdir /home/facebook/tech Given the full set of directories already existing on your computer, and a set of new directories you want to create if they do not already exist, how many mkdir commands do you need to use? Input The first line of the input gives the number of test cases, T. T test cases follow. Each case begins with a line containing two integers N and M, separated by a space. The next N lines each give the path of one directory that already exists on your computer. This list will include every directory already on your computer other than the root directory. (The root directory is on every computer, so there is no need to l ist it explicitly.) The next M lines each give the path of one directory that you want to create. Each of the paths in the input is formatted as in the problem statement above. Speci fically, a path consists of one or more lower - case alpha-numeric strings (i .e., strings containing only the symbols 'a'-'z' and '0'-'9'), each preceded by a single forward slash. These alpha-numeric strings are never empty. Output For each test case, output one l ine containing Case #x: y, where x is the case number (starting from 1) and y is the number of mkdir you need. Note: If a directory is listed as being on your computer, then its parent directory will also be listed, unless the parent is the root directory. INPUT 2 1 2 /chicken /chicken/egg /chicken 1 3 /a /a/b /a/c /b/b OUTPUT Case #1: 1 Case #2: 4 -- You received this message because you are subscribed to the Google Groups Algorithm Geeks group. To post to this group, send email to algogeeks@googlegroups.com. To unsubscribe from this group, send email to algogeeks+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/algogeeks?hl=en.