我自己做的火车题目答案,供大家参考
火车题目答案:https://download.csdn.net/download/xiananliu/10477156
Hi,
It was great speaking with you! As per our conversation, here'sthe next step in our hiring process. Below are three programming problems.Please read all three descriptions thoroughly then create a program to solveONE of the problems. If you submit more than one solution, we will review onlyone.
Note:
Rules:
1. You may not use any externallibraries to solve this problem, but you may use external libraries or toolsfor building or testing purposes. Specifically, you may use unit-testinglibraries or build tools available for your chosen language (e.g., JUnit, Ant,NUnit, Rspec, Rake, etc.).
2. System security is very importantto us and certain file extensions will be blocked for security purposes,resulting in delays to your application. You should NOT include any executableattachments, including those with .exe or .lib extensions. We need to be ableto run and build your code ourselves, so please submit your code as a zippedfile of source code and supporting files, without any compiled code. If you'resubmitting in C#, please do not submit your code as a .msi file.
3. Please include a briefexplanation of your design and assumptions, along with your code, as well asdetailed instructions to run your application.
4. We assess a number of thingsincluding the design aspect of your solution and your object orientedprogramming skills. While these are small problems, we expect you to submitwhat you believe is production-quality code; code that you’d be able to run,maintain, and evolve. You don’t need to gold plate your solution, however weare looking for something more than a bare-bones algorithm.
5. We want our hiring process to befair, and for everyone to start from the same place. To enable this, we requestthat you do not share or publish these problems.
6. Please compress your files into asingle .zip file before upload. Kindly ensure there are no executables in yoursubmission. Our system blocks executable files for security purposes, and wewant to avoid any delays in your process.
7. **Executables include asp, bat,class, cmd, com, cpl, dll, exe, fon, hta, ini, ins, iw, jar, jsp, js, jse, pif,scr, shs, sh, vb, vbe, vbs, ws, wsc, wsf, wsh & msi
As a general rule, we allow three days from the date that youreceive these instructions to submit your code, but you may request more timefrom your recruiter if needed. If you have any questions about the code as itrelates to your interview process, please contact your recruiter.
Problem one: Trains
The local commuter railroad services a number of towns inKiwiland. Because of monetary concerns, all of the tracks are 'one-way.' That is, a route from Kaitaia to Invercargill does not imply theexistence of a route from Invercargill to Kaitaia. In fact, even if bothof these routes do happen to exist, they are distinct and are not necessarilythe same distance!
The purpose of this problem is to help the railroad provide itscustomers with information about the routes. In particular, you willcompute the distance along a certain route, the number of different routesbetween two towns, and the shortest route between two towns.
Input: A directed graph where a node represents a town and an edge represents aroute between two towns. The weighting of the edge represents thedistance between the two towns. A given route will never appear more thanonce, and for a given route, the starting and ending town will not be the sametown.
Output:For test input 1 through 5, if no such route exists, output 'NO SUCH ROUTE'. Otherwise, follow the route as given; do not make any extra stops! For example, the first problem means to start at city A, then traveldirectly to city B (a distance of 5), then directly to city C (a distance of4).
1. The distance of the route A-B-C.
2. The distance of the route A-D.
3. The distance of the route A-D-C.
4. The distance of the routeA-E-B-C-D.
5. The distance of the route A-E-D.
6. The number of trips starting at Cand ending at C with a maximum of 3 stops. In the sample data below,there are two such trips: C-D-C (2 stops). and C-E-B-C (3 stops).
7. The number of trips starting at Aand ending at C with exactly 4 stops. In the sample data below, there arethree such trips: A to C (via B,C,D); A to C (via D,C,D); and A to C (viaD,E,B).
8. The length of the shortest route(in terms of distance to travel) from A to C.
9. The length of the shortest route(in terms of distance to travel) from B to B.
10. The number of different routesfrom C to C with a distance of less than 30. In the sample data, thetrips are: CDC, CEBC, CEBCDC, CDCEBC, CDEBC, CEBCEBC, CEBCEBCEBC.
Test Input:
For the test input, the towns are named using the first fewletters of the alphabet from A to D. A route between two towns (A to B)with a distance of 5 is represented as AB5.
Graph: AB5, BC4, CD8, DC8, DE6, AD5, CE2, EB3, AE7
Expected Output:
Output #1: 9
Output #2: 5
Output #3: 13
Output #4: 22
Output #5: NO SUCH ROUTE
Output #6: 2
Output #7: 3
Output #8: 9
Output #9: 9
Output #10: 7
Problem Two: Conference TrackManagement
You are planning a big programming conference and have receivedmany proposals which have passed the initial screen process but you're havingtrouble fitting them into the time constraints of the day -- there are so manypossibilities! So you write a program to do it for you.
Note that depending on how you choose to complete this problem,your solution may give a different ordering or combination of talks intotracks. This is acceptable; you don’t need to exactly duplicate the sampleoutput given here.
Test input:
Writing Fast Tests Against Enterprise Rails 60min
Overdoing it in Python 45min
Lua for the Masses 30min
Ruby Errors from Mismatched Gem Versions 45min
Common Ruby Errors 45min
Rails for Python Developers lightning
Communicating Over Distance 60min
Accounting-Driven Development 45min
Woah 30min
Sit Down and Write 30min
Pair Programming vs Noise 45min
Rails Magic 60min
Ruby on Rails: Why We Should Move On 60min
Clojure Ate Scala (on my project) 45min
Programming in the Boondocks of Seattle 30min
Ruby vs. Clojure for Back-End Development 30min
Ruby on Rails Legacy App Maintenance 60min
A World Without HackerNews 30min
User Interface CSS in Rails Apps 30min
Test output:
Track 1:
09:00AM Writing Fast Tests Against Enterprise Rails 60min
10:00AM Overdoing it in Python 45min
10:45AM Lua for the Masses 30min
11:15AM Ruby Errors from Mismatched Gem Versions 45min
12:00PM Lunch
01:00PM Ruby on Rails: Why We Should Move On 60min
02:00PM Common Ruby Errors 45min
02:45PM Pair Programming vs Noise 45min
03:30PM Programming in the Boondocks of Seattle 30min
04:00PM Ruby vs. Clojure for Back-End Development 30min
04:30PM User Interface CSS in Rails Apps 30min
05:00PM Networking Event
Track 2:
09:00AM Communicating Over Distance 60min
10:00AM Rails Magic 60min
11:00AM Woah 30min
11:30AM Sit Down and Write 30min
12:00PM Lunch
01:00PM Accounting-Driven Development 45min
01:45PM Clojure Ate Scala (on my project) 45min
02:30PM A World Without HackerNews 30min
03:00PM Ruby on Rails Legacy App Maintenance 60min
04:00PM Rails for Python Developers lightning
05:00PM Networking Event
Problem Three: Merchant's Guideto the Galaxy
You decided to give up on earth after the latest financialcollapse left 99.99% of the earth's population with 0.01% of the wealth.Luckily, with the scant sum of money that is left in your account, you are ableto afford to rent a spaceship, leave earth, and fly all over the galaxy to sellcommon metals and dirt (which apparently is worth a lot).
Buying and selling over the galaxy requires you to convert numbersand units, and you decided to write a program to help you.
The numbers used for intergalactic transactions follows similarconvention to the roman numerals and you have painstakingly collected theappropriate translation between them.
Roman numerals are based on seven symbols:
Symbol |
Value |
I |
1 |
V |
5 |
X |
10 |
L |
50 |
C |
100 |
D |
500 |
M |
1,000 |
Numbers are formed by combining symbols together and adding thevalues. For example, MMVI is 1000 + 1000 + 5 + 1 = 2006. Generally, symbols areplaced in order of value, starting with the largest values. When smaller valuesprecede larger values, the smaller values are subtracted from the largervalues, and the result is added to the total. For example MCMXLIV = 1000 +(1000 − 100) + (50 − 10) + (5 − 1) = 1944.
(Source: Wikipedia ( [17]http://en.wikipedia.org/wiki/Roman_numerals)
Input to your program consists of lines of text detailing yournotes on the conversion between intergalactic units and roman numerals.
You are expected to handle invalid queries appropriately.
Test input:
glob is I
prok is V
pish is X
tegj is L
glob glob Silver is 34 Credits
glob prok Gold is 57800 Credits
pish pish Iron is 3910 Credits
how much is pish tegj glob glob ?
how many Credits is glob prok Silver ?
how many Credits is glob prok Gold ?
how many Credits is glob prok Iron ?
how much wood could a woodchuck chuck if a woodchuck could chuckwood ?
Test Output:
pish tegj glob glob is 42
glob prok Silver is 68 Credits
glob prok Gold is 57800 Credits
glob prok Iron is 782 Credits
I have no idea what you are talking about
Regards,
Hui Wang
ThoughtWorks Recruiting
Copyright 2012 ThoughtWorks, Inc