ThoughtWorks Interview Question
SDE1sCountry: India
Interview Type: In-Person
using System;
using System.Collections.Generic;
using System.Linq;
namespace Employee
{
public class Contact
{
public string Name { get; private set; }
public string PhoneNumber { get; private set; }
public string Address { get; private set; }
public Contact(string name, string phoneNumber, string address)
{
this.Name = name;
this.PhoneNumber = phoneNumber;
this.Address = address;
}
}
public class PhoneBook
{
private readonly IEnumerable<Contact> _contact;
public PhoneBook(IEnumerable<Contact> contact)
{
this._contact = contact;
}
public IEnumerable<Contact> lookForName(string name)
{
var lookup = _contact.ToLookup(nd => nd.Name);
return lookup[name];
}
public IEnumerable<Contact> lookForPhoneNumber(string phoneNumber)
{
var lookup = _contact.ToLookup(nd => nd.PhoneNumber);
return lookup[phoneNumber];
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
namespace Employee
{
public class Contact
{
public string Name { get; private set; }
public string PhoneNumber { get; private set; }
public string Address { get; private set; }
public Contact(string name, string phoneNumber, string address)
{
this.Name = name;
this.PhoneNumber = phoneNumber;
this.Address = address;
}
}
public class PhoneBook
{
private readonly IEnumerable<Contact> _contact;
public PhoneBook(IEnumerable<Contact> contact)
{
this._contact = contact;
}
public IEnumerable<Contact> lookForName(string name)
{
var lookup = _contact.ToLookup(nd => nd.Name);
return lookup[name];
}
public IEnumerable<Contact> lookForPhoneNumber(string phoneNumber)
{
var lookup = _contact.ToLookup(nd => nd.PhoneNumber);
return lookup[phoneNumber];
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
namespace Employee
{
public class Contact
{
public string Name { get; private set; }
public string PhoneNumber { get; private set; }
public string Address { get; private set; }
public string _All
{
get
{
return string.Format("{0}:{1}:{2}",
this.Name,
this.PhoneNumber,
this.Address).ToLower();
}
}
public Contact(string name, string phoneNumber, string address)
{
this.Name = name;
this.PhoneNumber = phoneNumber;
this.Address = address;
}
}
public class PhoneBook
{
private readonly IEnumerable<Contact> _contact;
public PhoneBook(IEnumerable<Contact> contact)
{
this._contact = contact;
}
public IEnumerable<Contact> lookForName(string name)
{
var lookup = _contact.ToLookup(nd => nd.Name);
return lookup[name];
}
public IEnumerable<Contact> lookForPhoneNumber(string phoneNumber)
{
var lookup = _contact.ToLookup(nd => nd.PhoneNumber);
return lookup[phoneNumber];
}
public IEnumerable<Contact> lookForAlphabet(char letter)
{
var lookup = _contact.ToLookup(p => Convert.ToChar(p.Name.Substring(0, 1)),
p => p);
return lookup[letter];
}
public IEnumerable<Contact> lookForAll(string anyVal)
{
var lookup = _contact.Where(p => p._All.Contains(anyVal.ToLower()));
return lookup;
}
}
class CustomComparer : IEqualityComparer<Contact>
{
}
}
class PersonDetails{
String Name;
long PhoneNumber;
String Email;
int EmployeeId;
public void PersonDetails(String Name, long PhoneNumber, String Email, int EmployeeId){
this.Name = Name;
this.PhoneNumber = PhoneNumber;
this.Email = Email;
this.EmployeeId = EmployeeId;
}
public void PersonDetails(){
this.Name = null;
this.PhoneNumber = 0;
this.Email = null;
this.EmployeeId = 0;
}
public String getName(){
return this.Name;
}
public long getPhoneNumber(){
return this.PhoneNumber;
}
public String getEmail(){
return this.Email;
}
public int getEmployeeId(){
return this.EmployeeId;
}
}
class SearchResult{
public void SearchResult(String Name, HashMap<Integer, Object> map){
Iterator it = map.keySet().iterator();
while(it.hasNext()){
int key = (int) it.next();
PersonDetails PDet = (PersonDetails) map.get(key);
if(PDet.getName().equalsIgnoreCase(Name)){
System.out.println("\n Name: "+PDet.getName());
System.out.println("\n PhoneNumber: "+PDet.getPhoneNumber());
System.out.println("\n EmailID: "+PDet.getEmail());
System.out.println("\n EmployeeID: "+PDet.getEmployeeId());
System.out.println("\n");
System.out.println("\n");
}
}
}
c# implementation.
- zr.roman December 29, 2015