Tuesday, December 18, 2018
'Careercup Top 150 Questions\r'
'Cracking the technological audience by Gayle Laakmann, C atomic emergence 18erCup. com 150 Technical hearing Questions and Solutions, writ 10 by experts. PLUS: û û û Behind the scenes intuitive chanceing at Google Microsoft, virago and chawbacon wonders. dis crease cont eat up Stories: the view from the to a greater extent or less separate side. Advice on how to glide slope 24 types of query forelands. Copy near In markation Copy pay 2009 by Gayle Laakmann All rights reserved tot alto commovehery for [ electronic mail virtuoso hundred sixty; harbored] google. com www. c beercup. com tabulate of Contents Introduction Practice Interviews. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 The Microsoft Interview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 The virago Interview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 The Google Interview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 The Yahoo Interview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Interview warf ar Stories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Interview Questions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Chapter 1 Chapter 2 Chapter 3 Chapter 4 Chapter 5 Chapter 6 Chapter 7 Chapter 8 Chapter 9 Chapter 10 Chapter 11 Chapter 12 Chapter 13 Chapter 14 Applied Mathematics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Arrays & hasheesh put whole overs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 position treat manpowert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 heading Teasers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 C / C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 numeration and Combinatorics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Data pocketbook. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Debugging Existing Code. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Games . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 coffee. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Large Scale & Memory Limits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Linked Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Low Level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Matrix. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 4 é 2009 CAREERCUP unaccompanied for [email one hundred sixty;protected] google. com Table of ContentsChapter 15 Chapter 16 Chapter 17 Chapter 18 Chapter 19 Chapter 20 Chapter 21 Chapter 22 Chapter 23 Chapter 24 Ne dickensrking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Object Oriented Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Prob efficiency and Randomness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Softw be and arranging Design. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Sorting and Searching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 tons and Queues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 Threads And Locks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Trees and Graphs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 é 2009 CAREERCUP 5 Practice Interviews Studying helps, provided if nonhing en classle prep ar you deal the real liaison. individually(prenominal) C arrCup referenceer has pr wizard over a hundred hearings at Google, Microsoft, or virago. To nail your consultation, sit d endureledge with a deft wonderer and overhear their ca employ feedback. See www. c atomic fall 18ercup. om/interview for much details. ane Hour Interview with Real Interviewers Our interviewers go push through give you a real interview, notwithstanding wish youââ¬â¢d stir up at Google, Microsoft or Amazon. Weââ¬â¢ll get a line you on the same types of interrogatorys t palpebra they do. Weââ¬â¢ll grade you the same agency they do. How abide we do this? W eââ¬â¢ve male p arnte over zestyshot hundred interviews to each one for these companies. Weââ¬â¢ve quized imbibes. Weââ¬â¢ve been bit of their hiring directions. We k directlya geezerhood what they want. Weââ¬â¢ll Also glide by Youââ¬Â¦ û û û û û An . mp3 recording of your interview. Feedback on where you shined and where you struggled. Specific mites on how to improve.Instructions on how to approach tough jobs Lessons on what interviewers waitress for in your polity. A Typical Interview A representative interview includes a brief discussion of your resume and wiz or more(prenominal) technical questions. Each interview bequeath do mark via a shargond document. When the interview is bump offd, weââ¬â¢ll give you immediate feedback on how you did age itââ¬â¢s good-tempered fresh in your mind. Later that day, youââ¬â¢ll receive an mp3 of the interview to refresh your memory. catalogue Your Interview Today! See http://www. c argonrcup. com/interview for tick off and details! 6 é 2009 CAREERCUP xclusively for [emailclx;protected] google. com The Microsoft Interview Microsoft wants expert flock. Geeks. People who ar passionate to the highest degree technology. You in all probability wonââ¬â¢t be riddleed on the ins and outs of C++ APIs, but you give be anticipate to spare law on the board. In a typical interview, youââ¬â¢ll taper up at Microsoft at roughly quantify in the morning and engorge out initial paper ladder. Youââ¬â¢ll thrust a short interview with a recruiter where he or she entrust give you a sample question. Be nice to your recruiters; composition they may non pronounce your technical skills in depth, they sewer fight for you to be necessitated â⬠or non.Throughout the day, youââ¬â¢ll move somewhat from interviewer to interviewer, visit each whizz in their office. Use this cadence to look around and constitute a heart for what the police s quad culture. Interviewers are not allowed to share their feedback on you with an separate(prenominal) interviewers, due to concerns of bias. Nonetheless, some(prenominal) sources indicate that some feedback is shared. When you complete your interviews with a aggroup, you aptitude chatter with a hiring manager. If so, thatââ¬â¢s a great sign! It plausibly centre that you passed the interviews with a particular team. Itââ¬â¢s now down to the hiring manDefinitely Prepare: agerââ¬â¢s finish.You readiness get a decision that day, or it might be a week. by and by one week of no word from HR, send them a friendly email pick outing for a status update. ââ¬Å"why do you want to get to for Microsoft? ââ¬Â In this question, Microsoft wants to fancy that youââ¬â¢re passionate just about technology. A great resolve might be, ââ¬Å"Iââ¬â¢ve been victimisation Microsoft software as gigantic as I dejection mark, and Iââ¬â¢m rightfully impressed at how Mic rosoft puddles manages to create a product that is universally jump outlent. For example, Iââ¬â¢ve been apply Visual Studio recently to learn halt programming, and itââ¬â¢s APIs are comminuted. ââ¬Â Note how this shows a passion for technology!Whatââ¬â¢s strange: Youââ¬â¢ll just now reach the hiring manager if youââ¬â¢ve done well, but if you do, thatââ¬â¢s a great sign! [email one hundred sixty;protected] google. com é 2009 CAREERCUP 7 The Amazon Interview Amazonââ¬â¢s recruiting offshoot usually begins with one or dickens reverberate correct versions in which you interview with a specific team. The machinate who interviews you provide usually physical exercise up you to import wide command and read it aloud on the knell. They lead submit a broad set of questions to look for what expanses of technology youââ¬â¢re familiar with. Next, you fly to Seattle for tetrad or five interviews with one or ii teams which reserve select ed you establish on your resume and phone interviews.You pass on bem example to code on a washragboard, and some interviewers will stress some opposite skills. Interviewers are each assigned a specific scene of action to probe and may seem sincerely opposite from each other. They provoke not see other feedback until they cast submitted their own and they are discouraged from discussing it until the hiring get winding. Amazonââ¬â¢s ââ¬Å"bar raiserââ¬Â interviewer is charged with tutelage the interview bar high. They at tip special information and will interview aspects outside their group in order to balance out the group itself.If one interview seems signifi force out buoytly harder and dissentent, thatââ¬â¢s near achievable the bar raiser. This somebody has both signifi croupet attend with interviews Definitely Prepare: and veto power in the hiring decision. You Amazon is a web-based comp either, and will meet with your recruiter at the end of the day . that means that they care about scale. in one moorage your interviewers sacrifice readed their feedback, they will meet to discuss it. They will be the state making the hiring decision. While Amazonââ¬â¢s recruiters are gauzy at spare-time activity up with pottydidates, occasionally thither are delays.If you oasisââ¬â¢t heard from Amazon within a week, we recommend a friendly email. Make real as shooting you prepare questions in ââ¬Å"Large Scale. ââ¬Â You donââ¬â¢t need a background in distributed establishments to dissolve these questions. incisively practise the question for one system and then approximate, how does your radical deviate with denary computers? Additionally, Amazon tends to ask a lot of questions that are based in mathematics and randomness. Whatââ¬â¢s Unique: The disallow Raiser, who is brought in from a different team to go the bar high. 8 é 2009 CAREERCUP unaccompanied for [email protected] google. com The Google Interview there are some scary stories floating around about Google interviews, but itââ¬â¢s mostly just that: stories. The interview is not horribly different from Microsoftââ¬â¢s or Amazonââ¬â¢s. However, beca engage Google HR enkindle be a little disorganized, we recommend being proactive in communication. A Google engineer performs the number one phone screen, so expect tough technical questions. On your onsite interview, youââ¬â¢ll interview with four to six people, one of whom will be a lunch interviewer. Interviewer feedback is kept confidential from the other interviewers, so you fuck be as reald that you enter each interview with blank slate.Your lunch interviewer doesnââ¬â¢t submit feedback, so this is a great probability to ask honest questions. Written feedback is submitted to a hiring committee of engineers to bump off a hire/no-hire recommendation. Feedback is typically low-toned down into four categories (Analytical Ability, crypto interpret, Experience and Communication) and you are abandoned a score from 1. 0 to 4. 0 overall. The hiring committee under ho devises that you fagââ¬â¢t be evaluate to excel in all interview, but if octuple people raise the same red flag (arrogance, curt cryptography skills, and so on, that weed disqualify you.A hiring committee typically wants to see one interviewer who is an ââ¬Å"enthusiastic endorser. ââ¬Â In other words, a packet with scores of 3. 6, 3. 1, 3. 1 and 2. 6 is better than all 3. 1ââ¬â¢s. Your phone screen is usually not a factor in the final decision. The Google hiring process faecal matter be slow. If you donââ¬â¢t hear back within one week, politely ask your recruiter for an update. A lack of reception says nothing about your performance. Definitely Prepare: As a web-based compevery, Google cares about how to figure scalable system. So, arrive sure you prepare question from ââ¬Å"Large Scale. Additionally, numerous Google interviewers will ask questions involving bit shifting and get together Manipulation, so please brush up on these questions. Whatââ¬â¢s Different: Your interviewers do not make the hiring decision. Rather, they enter feedback which is passed to a hiring committee. The hiring committee recommends a decision which hatful beââ¬though ra cuss isâ⬠jilted by Google executives. [email protected] google. com é 2009 CAREERCUP 9 The Yahoo Interview Resume Selection & Screening: While Yahoo tends to only recruit at the top 10 â⬠20 schools, other mickledidates can unperturbed get interviewed by dint ofYahooââ¬â¢s melody board (or â⬠better dismantle â⬠if they can get an internal referral). If youââ¬â¢re one of the lucky ones selected, your interview process will pop up off with a phone screen. Your phone screen will be with a senior employee (tech lead, manager, etc). Onsite Interview: You will typically interview with 6 â⬠7 people on the same team for 45 legal proceeding each. Each interviewer will nonplus an area of focus. For example, one interviewer might focus on selective informationbases, while another interviewer might focus on your disposition of computer architecture.Interviews will ofttimes be placid as follows: 5 transactions: General conversation. mark me about yourself, your projects, etc. 20 proceeding: Coding question. For example, implement merge classify. 20 proceeding: ashes externalise. For example, design a large distributed cache. These questions will much focus on an area from your past experience or on something your interviewer is curDefinitely Prepare: rently working on. termination: At the end of the day, you will kindredly meet with a Program Manager or individual else for a general conversation (product demos, concerns about the company, your competing offers, etc).Meanwhile, your interviewers will discuss your performance and attempt to marge up to a decision. The hiring manager has the ultimat e say and will weightlift the positive feedback against the negative. If you gravel done well, you will ofttimes get a decision that day, but this is not al focuss the case. There can be umteen reasons that you might not be told for several days â⬠for example, the team may feel it needs to interview several other people. Yahoo, almost as a rule, asks questions about system design, so make sure you prepare that. They want to produce in that you can not only write code, but that you can design software. get dressedââ¬â¢t worry if you donââ¬â¢t acquit a background in this â⬠you can motionless reason your behavior through it! Whatââ¬â¢s Unique: Your phone interview will managely be performed by someone with more influence, such(prenominal) as a hiring manager. Yahoo is also unusual in that it ofttimes gives a decision (if youââ¬â¢re hired) on the same day. Your interviewers will discuss your performance while you meet with a final interviewer. 10 é 2009 C AREERCUP unaccompanied for [email protected] google. com Interview struggle Stories The View from the some other Side of the Front, by Peter BaileyFor the eager candidate getting ready for a big job interview, Cracking the Technical Interview is an invaluable reference, containing excellent coaching and traffic pattern material that gives you an inside raciness on the interview process. However, as you go over your old data buildings textbook and drill yourself with home-brewed discrete math flash cards, donââ¬â¢t make the mis government issue of mobiliseing of the interview as a manakin of high-pressure game show â⬠that if you just give all the right answers to the tech questions, you too can win a shining brisk career (this week, on Who Wants to be a Software Engineer? While the technical questions on computer science self-evidently are genuinely important, the most important interview question is not covered in this guidebook. In fact, itââ¬â¢s often t he item-by-item most important question in your interviewersââ¬â¢ minds as they grill you in that little room. patronage the questions on polymorphism and heaps and virtual(prenominal) machines, the question they very want an answer to is ââ¬Â¦ Would I engender a beer with this computed axial tomography? adoptââ¬â¢t look at me like that, Iââ¬â¢m respec delay! Well, I may be embellishing a little, but hear me out.The point Iââ¬â¢m arduous to make is that interviewers, especially those that you might work with, are in all likelihood just as anxious as you are. Nonsense, you say, as a anxious young professional, pilling your blow for lint while you bite your fingernails, waiting for the interview team to show up in the front lobby. After all, this is the big leagues, and these fatheads are just waiting for you to sideslip up so they can rip you apart, prank at your shriveled corpse, and grind your career dreams to pitter-patter beneath the heels of their bo ots. regenerate? Just like take week, back in freshman year?Right? Hmmm? Nothing could be further from the truth. The team of snap offers and managers interviewing you come their own tasks and projects waiting for them, back at their own desks. Believe me, theyââ¬â¢re hoping that all(prenominal) interview is difference to be the last one. Theyââ¬â¢d rather be doing anything else. There might be a quite a little of upcoming projects looming on their calendar, and they need more manpower if theyââ¬â¢re pass to veritable(a) have a prayer of making their deadline. tho the last computerized tomography rope the agency sent over was a complete flake who railed about Microsoftââ¬â¢s evil for fractional an hour.And the one beforehand that couldnââ¬â¢t code his way out of a wet paper pocket edition without utilise re-create-and-paste. Sheesh, they think, where is HR getting these guys? How hard can it be to hire one lousy person? While they may not literally be asking themselves ââ¬Å"Would I have a beer with this guy (or gal)ââ¬Â, they are looking to see how well you would move in with the team, and how you would affect team chemistry. If they hire you, youââ¬â¢re all going to be spending a lot of time together for 11 é 2009 CAREERCUP totally for [email protected] google. com Interview fight Stories he bordering few months or long time, and they want to hold up that they can rely on you â⬠and maybe even come to consider you a friend and colleague. They want to get laid that they can depend on you. And as tempt as it might be to them to just slide down and hire the succeeding(prenominal) person who comes on, they sock better. In umteen companies, particularly large U. S. companies, itââ¬â¢s harder to plague somebody than it is to hire somebody. (Welcome to the US: Land of Lawsuits! ) If they hire a dud, theyââ¬â¢re stuck with them. That person might be unproductive or, even worse, a drain on the teamà ¢â¬â¢s productivity.So they keep interviewing, until they name the right person. They know that itââ¬â¢s better to reject a good candidate than hire a no-good one. Some of those interviews are real doozies. Once youââ¬â¢ve interviewed long affluent, you build up a repertoire of plague stories. War stories, of candidates who looked promising on paper until the interviews went terribly, terribly wrong. These war stories are not only seriocomic â⬠theyââ¬â¢re also instructive. Names have been changed to protect the innocent â⬠or downright ridiculous. zyxwvutsrqponmlkjihgfedcba ZYXWVUTSRQPONMLKJIHGFEDCBA [email protected] google. comkjlslen 0987654321+_=-)(*&^%$#@! ~[]{};ââ¬â¢:ââ¬Â,. /? ABCDEZYXW first rudimentdeyxw asdsasdFGJwRXGs75rpqR3oFWHMJHp-RQ. Lââ¬LqJ. H-rsdkktNNsasdf [email protected] google. com [email protected] google. com é 2009 CAREERCUP 12 Interview War Stories Pop Divas Need Not Apply Leonard was a very promising C++ coder, three years out of college, with a lusty work account statement and an impressive skill set. He proved on the phone screen that he was above-average technically, and so he was invited in for an interview. We needed a savvy C++ person to work on a subdivision of middleware that interfaced with our database, and Leonard seemed like a sure break down.However, once we started talk of the town to him, things went south in a hurry. He dog-tired most of the interview criticizing every tool and programme that we questioned him on. We apply SQL Server as our database? Puhleease. We were planning to permutation to Oracle soon, right? Whatââ¬â¢s that? Our team used Tool A to do all our coding in? Unacceptable. He used Tool B, and only Tool B, and after he was hired, weââ¬â¢d all have to switch to Tool B. And weââ¬â¢d have to switch to coffee bean, because he really wanted to work with Java, despite the fact that 75 percent of the codebase would have to be rewritten.We ââ¬â¢d convey him later. And oh, by the way, he wouldnââ¬â¢t be making any meetings before ten oââ¬â¢clock. Needless to say, we encouraged Leonard to try out opportunities elsewhere. It wasnââ¬â¢t that his ideas were bad â⬠in fact, he was ââ¬Å"technicallyââ¬Â right about many things, and his (strong) opinions were all sanction with solid fact and sound reason (except for the ten oââ¬â¢clock thing â⬠we think he may have just been making a ââ¬Å"power playââ¬Â. ) But it was obvious that, if hired, Leonard wasnââ¬â¢t going to play well with others â⬠he would have been toxic kryptonite for team chemistry.He actually managed to offend 2 of the team members during the forty-five legal proceeding of his interview. Leonard also make the mistake of assuming that Code Purity and algorithmic ruleic programic rule Beauty were always more important than a concern deadline. In the real world, there are always compromises to be made, and wise to(p) how to work with the business analysts is just as important as knowing how to refactor a blob of code. If Leonard would not have gotten along with other IT people, he definitely wouldnââ¬â¢t have gotten along with the business folks. by chance you can get away ith hiring a Leonard if heââ¬â¢s one of the surmount ten coders in the world (he wasnââ¬â¢t). But he was the classic failure example for the ââ¬Å"Would you have a beer with this guy? ââ¬Â test. 13 é 2009 CAREERCUP exclusively for [email protected] google. com Interview War Stories What We Have Here is misadventure to Communicate Trisha was a mid-level Java developer with a solid explanation of middleware and JSP work on her resume. Since she was local, we invited her in for an interview without a phone screen. When we started asking her questions, it quickly became obvious that Trisha was a woman of few words.Her answers were short and often composed of ââ¬Å"yes/noââ¬Â responses, even to question s that were meant to start a dialog. Once she did start clear(p)ing up, I still wasnââ¬â¢t sure she was actually talk of the town. I truism her lips moving, and heard mumbling sounds coming out, but it wasnââ¬â¢t anything that sounded like English. Iââ¬â¢m not sure if Trisha was nervous or just shy, but all way, I had to ask her numerous times to reduplicate herself. Now I was the one getting nervous! I didnââ¬â¢t want to be the guy who ââ¬Å"ruinedââ¬Â the interview, so I pulled back on my questions. The other folks in the room and I exchanged uneasy glances.We felt like we were on a Seinfeld episode. It was almost impossible to understand Trisha, and when she did speak up, her halting, uncertain, confused speech patterns made us feel more like code break awayers than interviewers. I am not exaggerating to say that I did not understand a single answer she gave during the interview. Knowing, alone, isnââ¬â¢t good enough. Youââ¬â¢re going to be talking wit h other technical people, and youââ¬â¢re going to be talking to customers, and sales reps, and Betty from Marketing. You will write something eventually, whether itââ¬â¢s documentation, or a project plan, or a requirements document.The word processor might pose your spelling, but it wonââ¬â¢t correct your lousy write. The ability to communicate thoughts and ideas, in a clear, concise manner, is an dead invaluable skill that employers seek. The same goes for verbal communication. I used to work with a co-worker who twainfold the distance of every meeting he was in, because he could not answer a question in less than ten minutes. ââ¬Å"Hey, Dennis, what time is it? ââ¬Â ââ¬Å"Well, thatââ¬â¢s kind of interesting, because I just happened to be reading an bind on cesium clocks and leap seconds and the history of the Gregorian Calendar and ââ¬Â¦ Iââ¬â¢ll spare you the rest. [email protected] google. com é 2009 CAREERCUP 14 Interview War Stories You Ca n ascertain on Me, Just Not Until Early good afternoon Ahhh, 1999. The crest of the dot-com bubble, and the tightest labor market in history. Our company was racing to expand its development team, and we would have hired a German Shepherd if it k unused HTML. Instead, we tease up hiring Ian. We shouldââ¬â¢ve hired the dog. Ian was a cheerful, friendly guy who had a gift of natural charisma. He got along fantastically with all of the interviewers, and seemed very intelligent.Skillwise, he was adequate. He hadnââ¬â¢t written a single line of computer code outside of his college break aways, and didnââ¬â¢t even have his own e-mail hatch. When we gave Ian the chance to ask us questions at the end of the interview, he asked about flexible work hours, and how soon he could take vacation time. Instead of showing an interest in the career opportunities, or in companyââ¬â¢s growth prospects, he asked whether he could take the all-you-could-drink break room soda home with him. The questions grew more freaky from there. Ian was very interested in our Legal help bene gibe.He wanted to know if it covered the cost of register lawsuits, if it covered him if he got sued himself, if it applied to any lawsuits he currently was involved in, and if he could ââ¬Å"theoreticallyââ¬Â use it to sue the company itself. He also asked us if he could use it to help him ââ¬Å"fixââ¬Â some unpaid speeding tickets. In any other year, that should have been it for Ian right there. But, in 1999, we were hiring anybody who was even remotely competent. Ian collected pay insures from us for eighteen months, and he was about as productive as a art cone.He usually sauntered into the office around ten-thirty with some sort of lame excuse (by my count, he had to wait for the descent guy sixteen times in a six-month period). He usually killed the morning by tell e-mail and playing ping-pong, before breaking for a deuce-hour lunch. After lunch, it was more pingpong, and may be an hour of opus bad code, before bolting the office sometime around three. He was the dictionary definition of unreliable. Remember, your potential rising team members need to know that they can rely on you. And they need to know that you wonââ¬â¢t need constant supervision and hand-holding.They need to know that youââ¬â¢re able to figure things out on your own. One of the most important drawages that you, as a candidate, can convey in your interview is hiring me will make your lives easier. In fact, this is a large part of the reason for the famously difficult interview questions at places like Amazon and Google; if you can do by that kind of unpredictable pressure in an interview, then you stand a good chance of being recyclable to them on real projects. To cite a more subtle example, once I was on a four person team that was desperately try to recruit new members to help work on an old pile of software.It was a real mess; weââ¬â¢d inherited a nasty testis of sp aghetti, and we needed people who could jump in, figure things out, and be part of the event. There was one very clever fellow, Terry, who would have been a great asset for our team â⬠15 é 2009 CAREERCUP exclusively for [email protected] google. com Interview War Stories but we didnââ¬â¢t hire him, despite his excellent technical and personal skills. It was because he insisted on punctilious written instructions for every step of the coding process.He wasnââ¬â¢t going to make a suggestion or take any initiative â⬠or blow his nose, for that matter â⬠without a mile-long audit racecourse and a dozen signatures. While he insisted that he worked that way for reasons of quality (a defensible point), we got the impression that it had more to do with butt-covering, and we simply didnââ¬â¢t have the time for that kind of bureaucracy. Terry would have been an excellent fit in a government or aero length IT department, something that ask ISO 9000 procedures. Bu t he would have never fit into our team; he would have been a burden, not an asset.[email protected] google. com é 2009 CAREERCUP 16 Interview War Stories My roamer Senses are Tingling I can think of lots of interviews that just fell into the general year of weird and uncomfortable: û û û û û û The Java coder who simply considered hygiene optional, and had the interview room smelling like week-old blue cheese within ten minutes (my eyes were watering). The young fresh-out-of-college graduate with a glossa piercing that kept tick-tick-ticking against his teeth as he talked (after one-half an hour, it was like Chinese water torture).The girl who wore an iPod through her interview, with the volume turned loud enough that she actually had to ask the interviewers to repeat themselves a few times. The poor, hyper-nervous fellow who was sweating like a endurance contest runner for half an hour. The girl who wore a jersey with an obscene political slogan to h er interview. The guy who asked (seriously) at the end of his interview, ââ¬Å"So, are there any hot chicks in our department? ââ¬Â Those are the interviews where we politely thank the people for their time, shake their hand (except for the sweaty guy), then turn to each other after the door closes and ask â⬠did that really just happen?Nobody is maxim that you have to be a bland, boring zombi in a Brooks Brothers suit and tie. Remember, the interview team wants you to be ââ¬Å"the oneââ¬Â, but theyââ¬â¢re also very worried about the theory that youââ¬â¢re going to be more of a distraction than an asset. Donââ¬â¢t talk or behave in a way that will set off their early warning radar. Whether or not somebody bothers to behave professionally during an interview is often a very good index frame of what kind of teammate theyââ¬â¢re going to be. cardinal social skills are part of the answer to ââ¬Å"Would I have a beer with this guy? , or at least, ââ¬Å"Will I mind working neighboring to this guy for six months? ââ¬Â From the interviewerââ¬â¢s point of view, theyââ¬â¢re picking a neighbor that theyââ¬â¢re going to live and work with 200 hours per week for foreseeable future. Would you really want a neighbor that smelled like a hog rendering plant? 17 é 2009 CAREERCUP exclusively for [email protected] google. com Interview Questions Study hard, practice and good luck! How this Book is Organized The interview questions in this book are grouped into categories, with a page preceding each category pass advice and other information.Within each category, the questions are sorted by approximate level of difficulty. Solutions for all questions are at the back. How to Use this Book An effective interview is not about memorizing interview questions, but rather, about applying an concord of concepts and demonstrating your paradox solving ability. Use these questions to materialise the gaps in your knowledge and to learn job solving techniques that you can apply to new questions. Advice for Devs Your interview will be most likely not be conducted on a computer. Thus, when you practice the problems in this book, we recommend piece of music them down on paper first. therefore, type your tooth root into the computer scarcely as you wrote it and see how you did. especial(a) Advice for SDETs Not only do SDETs have to be great testers, but they also have to be great coders. Thus, we recommend that you complete the coding problems in this book with an eye for testing them. Even when the question doesnââ¬â¢t specifically ask it, you should ask yourself, ââ¬Å"how would I test this? ââ¬Â Remember: any problem can be an SDET problem. Suggestions and reformions While we do our best to ensure that all the solutions are correct, mistakes will be made. Moreover, sometimes there is no ââ¬Å"rightââ¬Â answer.If youââ¬â¢d like to offer a suggestion or correction, please submit it at http:// xrl. us /ccbook [email protected] google. com é 2009 CAREERCUP 18 Applied Mathematics How to burn up: CHAPTER-1 more of the so-called ââ¬Å"Applied Mathematicsââ¬Â problems read as mavin teasers at first, but can be worked through in a logical way. Just remember to rely on the rules of mathematics to develop an approach, and then to conservatively translate that idea into code. modeling: Given two acts m and n, write a rule to pay back the first derive r that is severable by both (e. g. , the least common dual).The begin: What does it mean for r to be divisible by m and n? It means that all the readys in m essentialiness go into r, and all ancients in n must be in r. What if m and n have primes in common? For example, if m is divisible by 3^5 and n is divisible by 3^7, what does this mean about r? It means r must be divisible by 3^7. The Rule: For each prime p such that p^a m (e. g. , m is divisible by p^a) and p^b n, r must be divisible by p^max(a, b) The Algo rithm: Define q to be 1. for each prime issue p less than m and n: find the largest a and b such that p^a m and p^b n let q = q * p^max(a, b) bribe qThings to Watch go forth For: 1. 2. Be careful with the difference in precision betwixt floats vs. reduplicates. Donââ¬â¢t assume that a look upon (such as the slope of a line) is an int unless youââ¬â¢ve been told so. prime Numbers 1. 2. Every number can be written as a product of primes. model: 504 = 2^3 * 3^2 * 7 f x is divisible by y, then every prime factor in y must be found in x. drill: If 504 is divisible by y, then y could be 168 (2^3 * 3 * 7), or 21 (3 * 7), or 4 (2^2), or many other things. Y could not, however, be live to 10 (5 * 2), since 5 is not found in x 19 é 2009 CAREERCUP exclusively for [email protected] oogle. com Applied Mathematics CHAPTER-1 1. 1 release a system to generate the nth Fibonacci number _______________________________________________________________________pg 69 1. 2 make unnecessary a method to count the number of 2ââ¬â¢s mingled with 0 and n. sheath excitant: 35 widening: 14 [list of 2ââ¬â¢s: 2, 12, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 32] _______________________________________________________________________pg 70 1. 3 Given two lines on a Cartesian plane, determine whether the two lines would intersect. _______________________________________________________________________pg 74 1. Given two squares on a two dimensional plane, find a line that would cut these two squares in half. _______________________________________________________________________pg 75 1. 5 pull through an algorithm which computes the number of trailing zeros in n factorial. EXAMPLE input: 11 outfit: 2 (11! = 39916800) _______________________________________________________________________pg 76 1. 6 issue a function that adds two numbers. You should not use + or any arithmetic operators. _______________________________________________________________________pg 77 1. bring through a method to implement *, â⬠, / operations. You should use only the + operator. _______________________________________________________________________pg 79 1. 8 Design an algorithm to find the kth number such that the only prime factors are 3, 5, and 7. _______________________________________________________________________pg 81 1. 9 A genus Circus is designing a tower routine consisting of people standing atop one anotherââ¬â¢s shoulders. For practical and aesthetic reasons, each person must be both shorter and lighter than the person downstairs him or her.Given the heights and weights of each person in the circus, write a method to compute the largest possible number of people in such a tower. EXAMPLE: Input(ht, wt) : (65, atomic number 6) (70, 150) (56, 90) (75, 190) (60, 95) (68, 110) rig: The longest tower is length 6 and includes from top to bottom: (56,90) (60,95) (65, ampere-second) (68,110) (70,150) (75,190) _________________________________ ______________________________________pg 84 1. 10 Given a two dimensional graph with 6000 points on it, find a line which passes the most number of points. ______________________________________________________________________pg 86 é 2009 CAREERCUP 20 Arrays & hash Tables How to Approach CHAPTER-2 While not all problem can be solved with a hash table, a shocking number of interview problems can be. belongings track of which items youââ¬â¢ve already seen? hash table. Needing a way to efficiently look up data? Hash table. The list goes on and on. You should become very exceedingly comfortable with hash tables: how to implement them and how to use them. Hash Tables A hash table is a data body structure that associates keys with values for O(1) lookup.Hash tables are frequently, though not always, implemented with an grade. A simple implementation of a hash table that hashes a trace to a person is as follows: class HashTable { Person[] data = new Person[MAX_HASH_KEY]; int getId(string s) { /* return a key for this string */ }; bool contains(string key) { int id = getId(key); if (data247) return true; return false; } void insert(string s, Person p) { data[getId(s)]; } Note: This implementation does not handle collision. Collisions can be handled by ââ¬Å"chainingââ¬Â (eg, use a connect list), or a variety of other ways. sender (Dynamically Resizing Array):A vector, or a dynamically resizing soldiery, is an get down that resizes itself as needed while still providing O(1) access. A typical implementation is that when a vector is full, the straddle triples in size. Each doubling takes a long time (O(n)), but happens so seldom that its asymptotic time is still O(1). 21 é 2009 CAREERCUP exclusively for [email protected] google. com Arrays CHAPTER-2 2. 1 think we have an array a1, a2, ââ¬Â¦ , an, b1, b2, ââ¬Â¦ , bn. Implement an algorithm to change this array to a1, b1, a2, b2, ââ¬Â¦ , an, bn. _________________________________ ______________________________________pg 87 . 2 Design an algorithm and write code to remove the duplicate characters in a string without using any additional buffer. NOTE: One or two additional variables is fine. An extra likeness of the array is not. FOLLOW UP Write the test cases for this method. _______________________________________________________________________pg 88 2. 3 You are apt(p) an array of integers (both positive and negative). Find the continuous sequence with the largest sum. pitch the sum. EXAMPLE input: {2, -8, 3, -2, 4, -10} output: 5 [ eg, {3, -2, 4} ] _______________________________________________________________________pg 90 2. Design an algorithm to find all pairs of integers within an array which sum to a contract value. _______________________________________________________________________pg 91 2. 5 An array A[1ââ¬Â¦ n] contains all the integers from 0 to n except for one number which is missing. In this problem, we cannot access an holy integer in A with a single operation. The elements of A are stand for in double star, and the only operation we can use to access them is ââ¬Å"fetch the jth bit of A[i]ââ¬Â, which takes constant time. Write code to find the missing integer. Can you do it in O(n) time? ______________________________________________________________________pg 93 é 2009 CAREERCUP 22 Bit Manipulation How to Approach: CHAPTER-3 Bit manipulation can be a scary thing to many candidate, but it doesnââ¬â¢t need to be! If youââ¬â¢re shaky on bit manipulation, we recommend doing a couple arithmetic-like problems to boost your skills. Compute the succeeding(a) by hand: 1010 â⬠0001 1010 > 1 1010 + 0110 1001^1001 0xFF â⬠1 1100^1010 1001 & 1100 0xAB + 0x11 If youââ¬â¢re still uncomfortable, examine very careful what happens when you do subtraction, addition, etc in base 10. Can you repeat that work in base 2? Things to Watch Out For: Itââ¬â¢s really easy to make mistakes on these probl em so, be careful! When youââ¬â¢re composing code, engine block and thinking about what youââ¬â¢re writing every couple lines. When youââ¬â¢re done, consort through your entire code. If youââ¬â¢re bit shifting, what happens when the digits get shifted off the end? Make sure to think about this case to ensure that youââ¬â¢re handling it correctly. 1 & 0 = 0 1 | 0 = 1 1 ^ 0 = 1 0 & 1 = 0 0 | 1 = 1 0 ^ 1 = 1 1 & 1 = 1 1 | 1 = 1 1 ^ 1 = 0 û And (&): 0 & 0 = 0 Or (|): 0 | 0 = 0 Xor (^): 0 ^ 0 = 0 Left Shift: x > 2 = 00000110 00011001 >> 4 = 00000001 exclusively for [email protected] oogle. com 23 é 2009 CAREERCUP Bit Manipulation CHAPTER-3 3. 1 Write a function int BitSwapReqd(int A, int B) to determine the number of bits ask to convert integer A to integer B. EXAMPLE: _______________________________________________________________________pg 94 3. 2 If you were to write a program to swap odd and even bits in integer, what is the minimum number of instructions required? (eg, bit 0 and bit 1 are swapped, bit 2 and bit 3 are swapped, etc). EXAMPLE: _______________________________________________________________________pg 95 3. 3 Write a method which finds the maximum of two numbers.You should not use if-else or any other comparison operator. EXAMPLE: _______________________________________________________________________pg 96 3. 4 Given a (decimal â⬠e. g. 3. 72) number that is passed in as a string, bulls eye the binary representation. If the number can not be qualified accurately in binary, scar ââ¬Å"ERRORââ¬Â _______________________________________________________________________pg 97 3. 5 You are given two 32-bit numbers, N and M, and a two bit positions, i and j. Write a method to set all bits in the midst of i and j in N equal to M (eg, M becomes a substring of N hardened at i and starting j).EXAMPLE: _______________________________________________________________________pg 99 3. 6 Wri te a function to swap a number in place without temporary variables. ______________________________________________________________________pg 100 3. 7 Given an integer, print the next smallest and next largest number that have the same number of 1 bits in their binary representation. ______________________________________________________________________pg 101 input: N = 10000000000, M = 10101, i = 2, j = 6 output: N = 10001010100 Input: 5, 10 Output: 10 Input: 10001010 Output: 01000101 Input: 31, 14 Output: 2 2009 CAREERCUP 24 soul Teasers Do companies really ask school principal teasers? CHAPTER-4 While many companies, including Google and Microsoft, have policies banning brain teasers, interviews still sometimes ask these tricky questions. Advice on Approaching Brain Teasers Donââ¬â¢t panic when you get a brain teaser. Interviewers want to see how you tackle a problem; they donââ¬â¢t expect you to immediately know the answer. Start talking, and show the interviewer how you approach a problem. In many cases, you will also find that the brain teasers have some connection back to wakeless laws or theories of computer science.If youââ¬â¢re stuck, we recommend simplifying the problem. enlighten it for a small number of items or a special case, and then see if you can understand it. Example: You are trying to cook an musket ball for on the nose 15 minutes, but instead of a timer, you are given two ropes which burn for exactly 1 hour each. The ropes, however, are of uneven densities â⬠eg, half the rope length-wise might take only 2 minutes to burn. The approach: 1. 2. 3. 4. 5. 6. 7. What is important? Numbers usually have a meaning behind them. The 15 minutes and two ropes were picked for a reason. Simplify!You can easily time one hour (burn just one rope). Now, can you time 30 minutes? Thatââ¬â¢s half the time it takes to burn one rope. Can you burn the rope twice as fast? Yes! (Light the rope at both ends. ) Youââ¬â¢ve now learned: (1) You can time 30 minutes. (2) You can burn a rope that takes X minutes in just X/2 minutes by spark both ends. Work backward: if you had a rope of burn-length 30 minutes, that would let you time 15 minutes. Can you remove 30 minutes of burn-time from a rope? You can remove 30 min of burn-time from leash #2 by lighting set #1 at both ends and Rope #2 at one end.Now that you have Rope #2 at burn-length 30 min, start cooking the junkie and light rope #2 at the other end. When Rope #2 burns up, your egg is done! 25 é 2009 CAREERCUP exclusively for [email protected] google. com Brain Teasers CHAPTER-4 4. 1 Add arithmetic operators (plus, minus, times, set out) to make the following(a) expression true: 3 1 3 6 = 8. You can use any parentheses youââ¬â¢d like. ______________________________________________________________________pg 103 4. 2 You have a 5 quart jug and 3 quart jug, and an unlimited cater of water (but no measuring cups). How would you come up with exactly four quarts of water?NOTE: The jugs are oddly shaped, such that filling up exactly ââ¬Ëhalfââ¬â¢ of the jug would be impossible. ______________________________________________________________________pg 104 4. 3 There is a building of 100 floors. If an egg drops from the n-th floor or above it will break. If itââ¬â¢s dropped from any floor below, it will not break. Youââ¬â¢re given 2 eggs. Find N, while minimizing the number of drops for the worse case. ______________________________________________________________________pg 105 4. 4 A stack of men are on an island. A djinni comes down and gathers everyone together and places a magical hat on some peopleââ¬â¢s heads (e. . , at least one). The hat is magical: it can be seen by other people, but not by the wearer of the hat himself. To remove the hat, you must dunk yourself submerged at exactly midnight. If there are n people and c hats, how long does it take the men remove the crowns? The men cannot tell each other ( in any way) that they have a hat. FOLLOW UP Prove that your solution is correct. ______________________________________________________________________pg 106 4. 5 There are 100 unlikable lockers in a hallway. A man begins by opening all the 100 lockers. Next, he closes every second locker.Then he goes to every third locker and closes it if it is open or opens it if it is closed (eg, he toggles every third locker). After his centesimal pass in the hallway, in which he toggles only locker number 100, how many lockers are open? ______________________________________________________________________pg 108 é 2009 CAREERCUP 26 C / C++ How To Approach: CHAPTER-5 A good interviewer wonââ¬â¢t demand that you code in a actors line you donââ¬â¢t profess to know. Hopefully, if youââ¬â¢re asked to code in C++, itââ¬â¢s listed on your resume. If you donââ¬â¢t remember all the APIs, donââ¬â¢t worryââ¬your interviewer probably doesnââ¬â¢t either!We do recommend, however, studying up on basic C++ syntax. Pointer sentence structure int p = v = Foo int *p; // Defines pointer. &q; // Sets p to address of q. *p; // Set v to value of q. *f = new Foo(); // Initializes f. k = f->x; // Sets k equal to the value of fââ¬â¢s member variable. C++ Class Syntax class MyClass { private: double var; public: MyClass(double v) {var = v; } ~MyClass() {}; double Update(double v); }; double Complex::Update(double v) { var = v; return v; } C++ vs Java: A very common answer in an interview is ââ¬Å" severalize the differences between C++ and Java. If you arenââ¬â¢t comfortable with any of these concepts, we recommend reading up on them. 1. 2. 3. 4. 5. 6. Java runs in a virtual machine. C++ natively supports unsigned arithmetic. In Java, parameters are always passed by value (or with objects, their references are passed by value). In C++, parameters can be passed by value, pointer, or by reference. Java has built-in garbage collection. C++ allows operator overlo ading. C++ allows multiple inheritance of classes. Thought: Which of these might be considered strengths or weaknesses of C++ or Java? Why? In what cases might you choose one linguistic process over the other? 7 é 2009 CAREERCUP exclusively for [email protected] google. com C / C++ CHAPTER-5 5. 1 What is the difference between a struct and a class? Where would you use each? ______________________________________________________________________pg 109 5. 2 Write a method to print the last ten lines of an input file using C. ______________________________________________________________________pg 110 5. 3 Compare and contrast a hash table vs. an STL map. How is a hash table implemented? If the number of inputs are small, what data structure options can be used instead of a hash table? _____________________________________________________________________pg 111 5. 4 How do a virtual functions work in C++? ______________________________________________________________________pg 1 12 5. 5 What is the difference between deep copy and modify copy? rationalize how you would use each. ______________________________________________________________________pg 113 5. 6 In a class, the ââ¬Ënewââ¬â¢ operator is used for allocating memory for new objects. Can this be done using malloc? If yes, how? If no, why not? Are there any restrictions associated with the use of malloc in place of new? _____________________________________________________________________pg 114 5. 7 What is the significance of the keyword ââ¬Å"volatileââ¬Â in C? ______________________________________________________________________pg cxv 5. 8 What is name hiding in C++? ______________________________________________________________________pg 116 5. 9 Why does a destructor in base class need to be declared virtual? ______________________________________________________________________pg 117 5. 10 Write a method that takes a pointer to a Node structure as a parameter and returns a complet e copy of the passed-in data structure.The Node structure contains two pointers to other Node structures. For example, the method signature could look like so: Node* Copy(Node* root); Note: Do not make any assumptions about the data structure â⬠it could be a tree, linked list, graph etc. Feel free to choose the terminology you are most comfortable with (C# or C++ are preferred) In addition to the function code, write a complete suite of unit tests for this problem. ______________________________________________________________________pg 119 5. 11 Write a smart pointer (smart_ptr) class. _____________________________________________________________________pg 120 é 2009 CAREERCUP 28 Counting and Combinatorics How to Approach: CHAPTER-6 While some problems in this chapter are simply coding problems, understanding the numeral solution will help you ââ¬Å"sanity checkââ¬Â your solution. For example, if you know how many subsets there are of a set, you can check to make sure that your algorithm to print all subsets will give you the correct number of subsets. When computing the number of ways of doing something, think about doing it step by step. The following two examples will illustrate this technique.How many ways can you pick k elements from n elements, if order matters and elements are not replaced? Eg â⬠if we pick 5 different garner, ââ¬Å"abcdeââ¬Â is considered to be different from ââ¬Å"edcbaââ¬Â. The Approach: We have n choices for the first draw. For the second draw, we only have n-1 since one is removed. Then n-2, ââ¬Â¦. When we draw k times, we get down to n-k+1 choices on the last draw. So, n * (n-1) * (n-2)*ââ¬Â¦ * (n-k+1) The Solution: n! / (n-k)! How many ways can you pick k elements from n elements, if order does not matter and elements are not replaced? Weââ¬â¢re now just throwing letters into a bucket. Picking ââ¬Å"a, bââ¬Â is the same thing as ââ¬Å"b, aââ¬Â.The Approach: If you compare this problem to t he previous one, weââ¬â¢ve essentially double (or triple, quadruple, etc) counted items. That is, ââ¬Å"abcââ¬Â, ââ¬Å"acbââ¬Â, ââ¬Å"bacââ¬Â, ââ¬Å"bcaââ¬Â, ââ¬Å" hackââ¬Â, ââ¬Å"cbaââ¬Â were all considered unique in the previous solution but now theyââ¬â¢re considered the same. Just how many times has ââ¬Å"abcââ¬Â been included (in its other forms)? 3! times, since there are 3! ways of rearranging ââ¬Å"abcââ¬Â. In fact, every item has been included 3! times, when it should have been included just once! So, we divide our previous answer by 3! (or, more generally, k! ). We now get n! / (k! * (n-k)! ). This solution is often written as n-choose-k or nCk. 9 é 2009 CAREERCUP exclusively for [email protected] google. com Counting and Combinatorics CHAPTER-6 6. 1 In how many different ways can a cube be painted by using three different colors of paint? ______________________________________________________________________pg 121 6. 2 Imagin e a automaton sitting on the upper left wing hand corner of an NxN grid. The robot can only move in two directions: right and down. How many possible paths are there for the robot? FOLLOW-UP Imagine certain squares are ââ¬Å"off limitsââ¬Â, such that the robot can not step on them. Design an algorithm to print all possible paths for the robot. _____________________________________________________________________pg 122 6. 3 Write a method to compute all permutations of a string. ______________________________________________________________________pg 123 6. 4 Implement an algorithm to print all well-grounded (eg, properly opened and closed) combinations of n-pairs of parentheses. EXAMPLE: input: 3 (eg, 3 pairs of parentheses) output: ()()(), ()(()), (())(), ((())) ______________________________________________________________________pg 124 6. 5 Write a method that returns all subsets of a set. ______________________________________________________________________pg 125 2009 CA REERCUP 30 Database How to Approach: CHAPTER-7 You could be asked about databases in a variety of ways: write a SQL query, design a database to hold certain data, or to design a large database. Weââ¬â¢ll go through the last mentioned two types here. Small Database Design Imagine you are asked to design a system to represent a schoolââ¬â¢s registrar: course information, departments, course enrollment, teachers, etc. What are the key objects? Student. Professor. Course. Department. How do they plug into to each other? *NOTE: Iââ¬â¢m going to make some assumptions here for the purposes of writing up this explanation.In your interview, donââ¬â¢t make assumptions! beseech your interviewer instead. Many-to-Many: û A course can belong to multiple departments, and each department can have multiple courses. So, create a separate table DepartmentCourse that acts as a ââ¬Å"pairingââ¬Â of the two. DepartmentCourse has just a department_id sketch and a course_id knowledg e base. A student can be in multiple courses, a course can have multiple students. So, do the same as above and create a StudentCourse table. A course only has one professor. A professor can teach multiple courses. So, add a field professor_id to the Courses table. û One-to-Many: ûLarge Database Design When designing a large, scalable database, joins (which are required in the above examples), are generally very slow. Thus, you must denormalize your data. regain cautiously about what when data will be usedââ¬youââ¬â¢ll probably need to duplicate it in multiple tables. 31 é 2009 CAREERCUP exclusively for [email protected] google. com Database CHAPTER-7 7. 1 Write a method to find the number of employees in each department when we have the following tables: ______________________________________________________________________pg 126 7. 2 What are the different types of joins?Please explain how they differ and why certain types are better in certain situations. ____ __________________________________________________________________pg 127 7. 3 What is normalization? Explain the pros and cons. ______________________________________________________________________pg 128 7. 4 Draw a entity-relationship diagram for a database with companies, people, and professionals (people who work for companies). ______________________________________________________________________pg 129 7. 5 You have to design a database that can store terabytes of data. It should support efficient range queries. How would you do it? _____________________________________________________________________pg 130 Employees containing: Emp_ID, Emp_Name and Dept_ID (Primary key) Departments containing: Dept_Name and Dept_ID (foreign key) é 2009 CAREERCUP 32 Debugging Existing Code How to Approach CHAPTER-8 Sometimes, in an interview, an interviewer asks you to look at a piece of code and identify the mistakes. We recommend the following approach: 1. 2. 3. Examine the code and under stand what itââ¬â¢s expected to do. involve your interviewer what types of data itââ¬â¢s expected to handle, where itââ¬â¢ll be used, etc. get word for syntax errors: does everything type check? s the class declaration correct? Look for ââ¬Å"hot spotsââ¬Â: û û û û û 4. û û 5. If you see float and doubles, check for precision errors If you see division, check for rounding errors If you see memory allocation, check for memory leaks If you see unsigned ints, check to see if the int might ever be negative If you see bit manipulation, check for appropriateness The ââ¬Å"normalââ¬Â case The boundary cases (null, 0, 1, MAX, etc) Run through the code with a few examples: Does it do everything itââ¬â¢s expect to? For example, if the code is supposed to return everyone in a database under 21, does it only look for students?Maybe it should be looking for teach-ers as well? Does it handle unexpected cases? What if it takes in a list and it has a loop ? 6. Further Advice 1. 2. Look at the space and time complexityââ¬can you improve it? Correct the mistakes in the code. But do so carefully! Donââ¬â¢t simply make changes until it works. late understand the issues and then correct them. 33 é 2009 CAREERCUP exclusively for [email protected] google. com Debugging Existing Code 8. 1 Explain what the following code does: ((n & (n-1)) == 0) CHAPTER-8 ______________________________________________________________________pg 131 8. Find the mistake(s) in the following code: unsigned int i; for (i = 100; i ::Other { int foo() { printf(ââ¬Å"here we are ââ¬Â); }; }; main() { typedef Foo typedef Derived Derived_inst; Derived_inst ii; ii. foo(); } ______________________________________________________________________pg 133 é 2009 CAREERCUP 34 Games How To Approach: CHAPTER-9 Sometimes interviewers ask these problems simply because theyââ¬â¢re ââ¬Å"fun,ââ¬Â but often, itââ¬â¢s also because ââ¬Å"gameââ¬Â problems are heavy on object oriented design. playing period problems tend to be more ââ¬Å"free formââ¬Â and thus they give you the chance to demonstrate how you really code.Define Data Structures When implementing something so free form, ask yourself, ââ¬Å"Where can I define a class or a struct? ââ¬Â When in doubt, define a new class or struct. It tells the interviewer that you care about the maintainability of your code. support Your Assumptions Be careful about making assumptions. Suppose youââ¬â¢re asked to implement the word game Scrabble. Donââ¬â¢t assume that the dictionary will be in Englishââ¬or even in that character set. It could be in any language! Ask your interviewer lots and lots of questions so that you know what to implement. Are you solving this problem once, or many times?Sometimes the solution will change depending on whether or not your code will be called multiple times. For example, suppose youââ¬â¢re asked to find all anagrams of a word . If youââ¬â¢re commerce this code just once, it may be red-hot just to rearrange the letters and check if theyââ¬â¢re in the dictionary. But, if youââ¬â¢re going to call the code multiple times, itââ¬â¢s now fastest to precompute data by iterating through all the words in the dictionary. Can you generalize your code, or part of it? If you really want to go above and beyond, try writing your code as though it were a more generalized case.For example, if youââ¬â¢re trying to figure out if a tic-tac-toe board has a winner, you might suggest to your interviewer solving it for the more general NxN case. If you go down this path though, be warnedââ¬sometimes problems are trickier than they appear. Also, make sure you discuss this with your interviewer so he/she knows what youââ¬â¢re doing. 35 é 2009 CAREERCUP exclusively for [email protected] google. com Games CHAPTER-9 9. 1 Design an algorithm to figure out if someone has won in a game of tic-tac-toe. _____ _________________________________________________________________pg cxxxv 9. The Game of Master Mind is played as follows: â⬠The computer has four slots containing balls that are red (R), jaundiced (Y), green (G) or blue (B). For example, the computer might have RGGB (eg, Slot #1 is red, Slots #2 and #3 are green, #4 is blue). â⬠You, the user, are trying to animadvert the solution. You might, for example, guess YRGB. â⬠When you guess right color for the right slot, you get a ââ¬Å"hitââ¬Â. If you guess a color that exists but is in the wrong slot, you get a ââ¬Å"psuedo-hitââ¬Â. For example, the guess YRGB has 2 hits and one pseudo-hit. For each guess, you are told the number of hits and pseudo hits.Write a method that, given a guess and a solution, returns the number of hits and pseudo hits. ______________________________________________________________________pg 137 9. 3 There is an 8×8 chess board in which two diagonally opposite corners have been cut o ff. You are given 31 dominos in which a single domino can cover exactly two squares. Can you use the 31 dominos to cover the entire board? Prove your answer (by providing an example, or showing why itââ¬â¢s impossible). ______________________________________________________________________pg 138 9. Find a way to arrange 8 queens on a chess board so that no(prenominal) of them share the same row, column or diagonal. ______________________________________________________________________pg 139 9. 5 Othello is played as follows: Each Othello piece is white on one side and black on the other. On your turn, you place a piece on the board so that your color is facing up. You must pick a spot such that your thwarterââ¬â¢s pieces are either on the left and the right, or on the top and the bottom. All of your inverseââ¬â¢s pieces on the line between two of yours are then turned over, to become yours. Your destination is to own the most pieces.Design the game Othello. Write a meth od to check whether someone has won the game. ______________________________________________________________________pg 141 é 2009 CAREERCUP 36 Java How to Approach: CHAPTER-10 While Java link up questions are found throughout this book, this chapter deals with questions about the language and syntax. You generally will not find many questions like this at the larger software companies (Microsoft, Google, Amazon, etc), which tend to avoid ââ¬Ëtriviaââ¬â¢ based questions, but these questions are very common at many small companies. What do you do when you donââ¬â¢t know the answer?If you donââ¬â¢t know the answer to a question about the Java language, try to figure it out by doing the following: (1) Think about what other languages do. (2) Create an example of the scenario. (3) Ask yourself how you would handle the scenario if you were designing the language. Your interviewer will likely be equallyââ¬or moreââ¬impressed if you\r\n'
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment