มันเป็นแค่ฉันหรือนี่เป็นคำถามสัมภาษณ์ที่ทำให้งงงวย? [ปิด]


153

พื้นหลัง

ฉันถูกถามในการสัมภาษณ์ทางเทคนิคเพื่อเขียนอัลกอริทึมเพื่อสำรวจ "วัตถุ" (สังเกตเครื่องหมายคำพูด) โดยที่ A เท่ากับ B และ B เท่ากับ C และ A เท่ากับ C

แค่นั้นแหละ. นั่นคือข้อมูลทั้งหมดที่ฉันได้รับ

ฉันถามผู้สัมภาษณ์ว่าเป้าหมายคืออะไร แต่เห็นได้ชัดว่าไม่มีใครแค่ "ทราเวิร์ส" "วัตถุ"

ฉันไม่รู้เกี่ยวกับคนอื่น แต่ดูเหมือนจะเป็นคำถามที่โง่สำหรับฉัน ฉันถามอีกครั้งว่า "ฉันกำลังค้นหาค่าอยู่หรือไม่" Nope เพียงแค่ "สำรวจ" มัน

ทำไมฉันถึงต้องการที่จะวนลูปผ่าน "วัตถุ" นี้ไม่รู้จบ? เพื่อละลายโปรเซสเซอร์ของฉันอาจ?

คำตอบตามที่ผู้สัมภาษณ์คือการที่ฉันควรจะได้เขียนฟังก์ชันเวียน

ตกลงดังนั้นทำไมไม่เพียงแค่ขอให้ฉันเขียนฟังก์ชั่นวนซ้ำ? และใครจะเขียนฟังก์ชั่นวนซ้ำที่ไม่สิ้นสุด

คำถามของฉัน:

นี่เป็นคำถามที่ถูกต้องหรือไม่สำหรับคุณที่เหลือและถ้าเป็นเช่นนั้นคุณสามารถให้คำแนะนำเกี่ยวกับสิ่งที่ฉันอาจหายไปได้หรือไม่? บางทีฉันอาจจะคิดหนักเกินไปเกี่ยวกับการแก้ปัญหาในโลกแห่งความจริง ฉันเขียนโปรแกรมเรียบร้อยแล้วเป็นเวลานาน แต่กระบวนการสัมภาษณ์ทางเทคโนโลยีนี้ทำให้ฉันรู้สึกเหมือนไม่รู้อะไรเลย


197
คำตอบเดียวที่ถูกต้องคือ "ฉันไม่เข้าใจคำถาม"
user16764

16
ถ้าพวกเขาไม่ได้พูดในสิ่งที่ A, B และ C (เช่น - พวกเขาเป็นวัตถุ) และพวกเขาใส่วัตถุในเครื่องหมายคำพูดพวกเขาดูเหมือนจะมีคำศัพท์เฉพาะของตัวเอง ถ้าพวกเขาถามว่าจะสำรวจกราฟวัตถุที่วัตถุ A การอ้างอิงวัตถุ B ซึ่งการอ้างอิงวัตถุ C ซึ่งการอ้างอิงวัตถุ A มันจะได้เข้าใจ แต่ทำไมมันจะต้องเกิดซ้ำฉันไม่รู้ ไม่จำเป็นต้องไม่มีที่สิ้นสุดหากคุณเก็บรักษารายการวัตถุที่เคยเยี่ยมชมแล้วโดยวิธีการ แต่ใช่ฉันจะกังวลเกี่ยวกับการทำงานให้กับ บริษัท ที่ใช้การทดสอบนั้น - พวกเขาดูเหมือนสับสน
psr

77
คำถามตามที่อธิบายไว้เป็นเรื่องไร้สาระและคำตอบก็คือ อาจเป็นเพราะคุณกำลังเข้าใจผิดในสิ่งที่พวกเขาถามหรือคนที่ทำการถามนั้นเป็นคนงี่เง่าและคุณน่าจะดีกว่าถ้าไม่ได้ทำงานกับเขา
Mason Wheeler

26
ทำไมการสัมภาษณ์ผู้พัฒนาจึงต้องเจ็บปวด พวกเราทุกคนไม่สามารถนั่งลงและดูรหัสของกันและกันและพูดคุยกันได้หรือไม่? ผู้พัฒนาจะทราบว่าผู้พัฒนารายอื่นอยู่ที่ใดโดยการทำเช่นนี้และใช้เวลาไม่ถึง 6 ชั่วโมง การทดสอบรหัสเป็นสิ่งที่เลวร้ายที่สุด ฉันไม่รังเกียจที่จะยอมรับว่าฉันดูดการส่งมอบโซลูชั่นที่ดีที่สุดในขณะที่ 3 devs ฉันไม่เคยพบเจอฉันในขณะที่ฉันพิมพ์
Erik Reppen

19
ฉันต้องตรวจสอบประวัติของคุณเพื่อดูว่าคุณอาศัยอยู่ในพื้นที่เดียวกันกับฉันหรือไม่เพราะฉันทำงานในช่วงเวลาสั้น ๆ ในที่ซึ่งมีเพื่อนคนหนึ่งสัมภาษณ์ฉันถามว่า ที่ฉันตอบว่า "คุณจะเจาะจงมากขึ้นได้ไหม" และคำตอบของเขา "ฉันไม่สามารถอธิบายได้ แต่ฉันรู้ว่าเป็นคนที่มีรายละเอียดเมื่อฉันเห็นงานของพวกเขา" รักความกำกวม
เจสซี C. ตัวตัด

คำตอบ:


305

มันเป็นคำถามสัมภาษณ์ที่ทำให้งุนงงและไม่ถูกต้อง ผู้สัมภาษณ์ไม่สามารถบอกได้ชัดเจนว่าเขา / เธอกำลังมองหาและคาดหวังให้คุณอ่านความคิดของเขา / เธอแทนที่จะตอบสนองอย่างมีความหมายกับความพยายามที่เหมาะสมของคุณเพื่อชี้แจงคำแถลงปัญหา พิจารณาตัวเองว่าโชคดีที่คุณไม่ได้งานทำ

ความหมายของคำกริยา "ทราเวิร์ส" ที่ใช้กับ "วัตถุ" ทั่วไปนั้นคลุมเครือในความคิดของฉัน เริ่มแทนที่คำนามที่แตกต่างหลากหลายสำหรับคำว่าวัตถุและเห็นได้อย่างรวดเร็วว่าการสำรวจเส้นทางของวัตถุนั้นมีความหมายสำหรับเซตย่อยเล็ก ๆ ของจักรวาลของสิ่งต่าง ๆ ที่เป็นวัตถุ

มันทำให้รู้สึกถึง "ทราเวิร์" โหนดของ "ต้นไม้ไบนารี" มันไม่สมเหตุสมผลที่จะ "สำรวจ" เป็น "ตัวตลก" แต่วัตถุก็สามารถเป็นตัวแทนของ "ตัวตลก" ได้อย่างง่ายดายเพราะมันสามารถเป็นตัวแทนของ "ต้นไม้ไบนารี"


9
ฉันเพิ่งได้รับในการฝึกการแทนคำนามในคำถามโง่ ๆ ด้วยคำว่า "ตัวตลก" +1 ท่าน!
rupjones

108
"Traversal ตัวตลก" - เป็นสิ่งที่ Meme ที่ยอดเยี่ยมสำหรับ "คำถามทางเทคนิคโง่ ๆ " ผ่านมัน!
Radarbob

8
อืมฉันสามารถสำรวจตัวตลก var = {หมวก: "ด้วยดอกไม้", ผม: "สีแดงสด", จมูก: "ลูกบอลสีแดง", ปาก: "ปากสีแดงล้อมกรอบด้วยสีขาว", ... };)
mplungjan

37
พื้นที่ทั้งหมดของฉันในการวิจัย CS เชิงทฤษฎีเกี่ยวข้องกับการแวะผ่านตัวตลกซ้ำ ๆ

6
@JackManey: ทุกคนรู้ว่าตัวตลกจะต้องสำรวจซ้ำ
Adam Robinson เมื่อ

39

ฉันเห็นความเป็นไปได้สามอย่างที่นี่

  1. เธอไร้ความสามารถอย่างสมบูรณ์ ไม่มากที่จะพูดในที่หนึ่ง
  2. เธอตั้งใจทำให้มันคลุมเครือเพื่อดูว่าคุณทำได้ดีแค่ไหนในการถามคำถามเพื่อหาว่าคุณควรทำอะไรและเธอเป็นอย่างไร
  3. ด้วยเหตุผลใดก็ตามเธอตัดสินใจว่าเธอไม่ต้องการให้คุณจ้างดังนั้นเธอจึงถามคำถามที่ไม่สามารถตอบได้ เมื่อเธอถูกถามเกี่ยวกับทักษะของคุณเธอจะข้ามส่วนนั้นและพูดบางอย่างเช่น: "ฉันถามเขาเกี่ยวกับวิธีสำรวจกราฟสามโหนดและเขาก็นิ่งงันโดยสมบูรณ์ - ไม่มีแม้แต่ความรู้ว่า เพื่อเริ่มต้นเห็นได้ชัดว่าเขาไร้ความสามารถอย่างไม่มีการลด ! เราไม่ควรพิจารณาที่จะจ้างเขา "

7
"ฉันถามเขาเกี่ยวกับวิธีการสำรวจกราฟสามโหนด, ... " ถ้า OP โพสต์ฉันถูกต้องจะไม่มีการพูดถึงกราฟหรือโหนด เพียงแค่ "วัตถุ" นี่คือรูปแบบของ "คำเบิกความเท็จ" หากเธอเขียนเรื่องแบบนี้สามารถถูกดำเนินคดีได้!
Emilio Garavaglia

9
ปกติคุณใช้สรรพนามเพศหญิงเมื่อไม่ระบุเพศของบุคคลนั้นหรือไม่?
Chan-Ho Suh

8
@EmilioGaravaglia: ก่อนอื่นมันอาจจะไม่ถูกเขียน ประการที่สองแม้สมมติว่ามันถูกเขียนลงคุณไม่ต้องสงสัยเลยว่าจะไม่สามารถเข้าถึงได้เพียงแค่จดหมาย "เราเสียใจที่ต้องแจ้งให้คุณทราบ ... " จดหมาย ข้อสามถ้าคุณไม่มีการบันทึกการสัมภาษณ์คุณจะพิสูจน์ได้อย่างไรว่าผู้สัมภาษณ์ไม่ได้บอกความจริง บรรทัดล่าง: ในทางทฤษฎีคุณควรจะถูกต้อง - แต่ในความเป็นจริงมันไม่มีโอกาสเลย
Jerry Coffin

11
@ Chan-HoSuh: OP กล่าวถึงเพศในความคิดเห็นของเขา
Jerry Coffin

4
@JerryCoffin ขอโทษแล้วฉัน
Chan-Ho Suh

32

นี่เป็นเพียงการคาดเดาอย่างรุนแรง แต่สมมติว่าผู้สัมภาษณ์กำลังพูดถึงการอ้างอิงตัวชี้ (และเป็นคำถามที่ใช้กลอุบาย) คำตอบคือ: ไม่มีสิ่งใดที่จะข้ามเพราะการอ้างอิงทั้งหมดชี้ไปที่วัตถุเดียวกัน

ฟังก์ชั่นวนซ้ำ? สำหรับการสำรวจต้นไม้ ฉันไม่เห็นสิ่งใดในคำถามเดิมที่บอกเป็นนัยว่าเขากำลังพูดถึงต้นไม้


28
เดินหน้า. มี บริษัท ที่ดีกว่าที่จะทำงานให้
shufler

7
Nah มันเป็นสาเหตุที่หายไป หากผู้สัมภาษณ์คิดว่าเขาผิดเขาจะไม่ถามคำถามตั้งแต่แรก ครั้งหนึ่งฉันถูกขอให้เขียนตัวอย่างในภาษาที่ฉันต้องการ คนที่สัมภาษณ์ฉันสันนิษฐานว่ารหัสปลอมเป็นทางเลือกที่ถูกต้อง
Robert Harvey

8
@ Robert Harvey: เกิดอะไรขึ้นกับ pseudocode?
James

6
@ Robert Harvey: เพื่อความเป็นธรรมทุกคนต้องการมากที่สุดคือการหาวิธีที่คุณแก้ปัญหาไม่ได้เพื่อดูว่าคุณได้เรียนรู้ไวยากรณ์ของภาษาเฉพาะใด ๆ มันค่อนข้างธรรมดาสำหรับอัลกอริทึมที่จะระบุใน pseudocode
James

8
ความแตกต่างระหว่าง pseudocode และ Python คืออะไร? :)
David Robinson

15

แม้ว่าฉันจะไม่สามารถพูดกับผู้สัมภาษณ์คนนี้ได้ แต่ฉันเห็นคำถามที่คล้ายกันในการสัมภาษณ์ตำแหน่งนักพัฒนาซอฟต์แวร์ดังนั้นภาษาที่ฉันใช้ในตัวอย่างนี้จะเป็น JavaScript

ได้รับ:

var A = {
    key1: 'value1',
    key2: 2,
    key3: {
        innerkey1: 'value3'
    }
}

การตอบสนองที่ผิดปกติอาจ "สำรวจ" ในระดับแรกเท่านั้นและพิมพ์ / เปรียบเทียบ:

'value1'
2
[Object object]

ดังนั้นในขณะที่การเข้ารหัสตัวอย่างแบบเรียกซ้ำที่จะสำรวจทุกระดับฉันจะพูดถึงสิ่งต่าง ๆ เช่น:

  • การจัดการการอ้างอิงแบบวงกลม
  • จะจัดการกับอาร์เรย์ได้อย่างไร (ควรจะทำการสำรวจแบบวนซ้ำด้วยซ้ำ)
  • ควรประเมินฟังก์ชั่นและประมวลผลค่าส่งคืนหรือไม่
  • สำหรับ JavaScript: ต้นแบบควรตรงกันและควรเปรียบเทียบคุณสมบัติที่สืบทอดด้วยหรือไม่

ดังนั้น "วิธีแก้ปัญหา" ที่ฉันคาดเดาว่าผู้สัมภาษณ์กำลังจะทำคือเริ่มต้นการสนทนากับคำถามที่ดูง่าย ๆ ที่มีหัวข้อขั้นสูงมากมาย - การเรียกซ้ำตัวชี้ / การอ้างอิงความคาดหวัง ฯลฯ


5
นั่นทำให้รู้สึกว่าคุณใส่มัน WSKid น่าเสียดายที่ไม่มีการเสนอบริบทดังกล่าว
Matt Cashatt

3
จริงอยู่นี่คือการเข้าใจที่ฟาง พวกเขาควรได้นำเสนอกรณีการใช้งานหรือตัวอย่าง 3 วัตถุหรือบางสิ่งบางอย่างเพื่อนำไปสู่ปัญหาที่แท้จริง
WSkid

1
ฉันกำลังคิดเหมือนกันเฉพาะสำหรับคุณลักษณะของวัตถุหลาม การรู้ว่าคำถามใดที่พวกเขาคาดหวังคำตอบจะมีประโยชน์อย่างมหาศาล แต่อาจคาดหวังได้จากบริบทของตำแหน่งเช่น python dev, c # dev, javascript dev, php dev ฯลฯ
Ken

2
+1 สำหรับการค้นหาบริบทที่คำถามนั้นสมเหตุสมผล
Donal Fellows

9

ผู้สัมภาษณ์บางคนพยายามถามคำถามโดยเฉพาะเพื่อดูว่าผู้สมัครฉลาดและซื่อสัตย์พอที่จะให้คำตอบหนึ่งในสองข้อนี้หรือไม่:

ฉันไม่รู้

หรืออาจจะ:

ฉันไม่สามารถตอบได้ตามที่ระบุไว้

พวกเขาไม่ต้องการผู้สมัครที่จะยอมรับ BS บริสุทธิ์เป็นสเป็คและเสียเวลานายจ้างของพวกเขาและพยายามที่จะใช้มัน


6
ชีวิตทั้งหมดของเราเรามีเงื่อนไขในสถานการณ์เช่นนี้ในการสัมภาษณ์เพื่อให้สามารถตอบคำถาม หากพูดว่า "ฉันไม่รู้" (ซึ่งฉันทำตามวิธีการ) เป็นที่ยอมรับได้ฉันควรได้รับคำบอกกล่าวก่อนมือเช่นกัน ความพยายามในการตอบคำถามสัมภาษณ์โดยสุจริตใจไม่จำเป็นต้องเท่ากับวิธีที่จะปฏิบัติต่อข้อมูลจำเพาะหรือข้อกำหนดที่ไม่เพียงพอ และฉันคิดว่านี่เป็นจุดรวมการสัมภาษณ์เหล่านี้ได้ออกนอกเส้นทางและขาดประเด็นในหลายกรณี
Matt Cashatt

ช่างเป็นคำตอบที่ดี อย่างไรก็ตามอย่าลืมว่าต้องใช้ประสบการณ์มากมายในการพูดสิ่งนี้ โดยส่วนตัวแล้วฉันสามารถพูดได้ว่าประสบการณ์ในการสัมภาษณ์เป็นส่วนสำคัญของงาน @MatthewPatrickCashatt หากผู้สัมภาษณ์จะไม่ยอมรับ "ฉันไม่รู้" จากนั้นก็ไม่ต้องพูดคุยกับ IMO อีกแล้ว
arin

2
คำถามเคล็ดลับมีทั้งการหมุนรอบหรือต่ำต้อยไร้ความสามารถ ไม่ว่าจะด้วยวิธีใดหากผู้สัมภาษณ์ถามคำถามหลอกลวงคุณไม่ต้องการทำงานที่นั่น
Ben Brocka

7

สำหรับฉันดูเหมือนว่านี่เป็นคำถาม (พูดชัด ๆ ไม่ดี) เกี่ยวกับรายการเชื่อมโยงแบบวงกลม ฉันน่าจะถามว่านั่นคือสิ่งที่มีความหมาย (เพราะคำตอบจะแตกต่างจากที่อื่นอย่างแน่นอนข้างต้นซึ่งจะกล่าวว่าพวกเขาทั้งหมดอ้างอิงถึงวัตถุเดียวกัน)

หากนี่เป็นคำถามของรายการที่ลิงก์คุณ (ในกรณีนี้) จะมีรายการที่เชื่อมโยงโดยลำพังที่จุดปลายโหนดชี้ไปที่ปลายอีกด้านหนึ่ง (แม้ว่ามันจะเป็นคำพูดตามที่คุณพูด B และ C - แต่การชี้แจงในส่วนของผู้สัมภาษณ์จะช่วยได้)

A -> B -> C -> A

นอกจากนี้ (และสิ่งนี้เกิดขึ้นตลอดเวลา) ผู้สัมภาษณ์อาจได้อ่านคำถามนี้คิดว่ามันเป็นคำถามที่ 'ดี' แต่จริงๆแล้วก็ไม่รู้คำตอบของตัวเอง (หรือแม้แต่ความหมาย)


1
ขอบคุณ Maich - ฉันคิดว่าจุดสุดท้ายของคุณน่าจะเป็นไปได้มากที่สุด
Matt Cashatt

5

ส่วนหนึ่งของความท้าทายที่นี่คือการได้รับรายละเอียดเพิ่มเติมโดยการถามคำถามที่เฉพาะเจาะจงเพื่อให้ทราบว่ามีโครงสร้างต้นไม้และส่วนประกอบใดบ้างที่เกี่ยวข้องกับการสำรวจเส้นทาง อาจมีการสันนิษฐานว่าไม่มีโครงสร้างข้อมูลอื่น ๆ อีกจำนวนมากที่สำรวจหนึ่งนอกเหนือจากต้นไม้ แต่นั่นก็เป็นเพียงก้าวกระโดดในใจของฉัน


1
ขอบคุณ JB King เป็นการเตือนที่ดีในการถามคำถาม ในกรณีนี้ฉันทำ ที่จริงแล้วฉันยังถามว่ามันเป็นต้นไม้หรือไม่และคำตอบก็คือ! แต่ประเด็นของคุณก็คือว่าฉันมีหน้าที่รับผิดชอบในการกลั่นกรองข้อมูลให้ได้มากที่สุดโดยการถามคำถาม
Matt Cashatt

3

พวกเขาอาจต้องการลองหาวิธีจัดการกับปัญหาแปลก ๆ แต่ในกรณีนี้มันไม่มีอะไรเกี่ยวข้องกับ "การสัมภาษณ์ทางเทคโนโลยี" ดูเหมือนสัมภาษณ์ทางจิตวิทยามากกว่า


5
ฉันชอบที่จะดูตัวอย่างหนึ่งในคุณสมบัติทางเทคนิคของพวกเขาสำหรับโครงการซอฟต์แวร์
Chuck D

หากการสัมภาษณ์สำหรับนักวิเคราะห์ระบบหรือตำแหน่งที่คล้ายกันนี่เป็นสิ่งที่เหมาะสมอย่างยิ่ง: งานของคุณคือการช่วยลูกค้าชี้แจงคำถามแทนที่จะตอบคำถาม
reinierpost

1
@ reinierpost - มันไม่ใช่
Matt Cashatt

3

เขียนอัลกอริทึมเพื่อสำรวจ "วัตถุ" (สังเกตเครื่องหมายคำพูด) โดยที่ A เท่ากับ B และ B เท่ากับ C และ A เท่ากับ C

ดูเหมือนว่าคนส่วนใหญ่คิดว่า A, B และ C เป็นตัวชี้ แต่พวกเขาก็สามารถเป็นตัวตลกได้ง่ายเช่นกัน (หรือสมาชิกของคลาสตัวตลก) หรือพวกเขาอาจเป็นชื่อตัวตลก (หรือชื่อคลาสหรือคลาสย่อยของคลาสตัวตลก)

ฉันจะเปลี่ยนตารางและถามว่านี่คือวิธีที่พวกเขาเตรียมข้อมูลจำเพาะการพัฒนาหรือไม่แล้วบอกพวกเขาว่าฉันจะช่วยพวกเขาได้อย่างไรในขั้นตอนข้อกำหนดคุณสมบัติของการพัฒนา การสื่อสารที่ไม่คาดหวังของความคาดหวังทำให้ผลิตภัณฑ์ทำงานไม่ดี ไม่ว่าพวกเขาจะได้รับหรือไม่ถ้าพวกเขาไม่ได้รับฉันจะเดินออกไป


2

ในขณะที่คำถามถูกเขียนขึ้นอย่างไม่ดีนักและผู้สัมภาษณ์ก็ไม่ช่วยเหลืออย่างชัดเจนในการชี้แนะทางใด ๆ ฉันมีสิ่งที่แตกต่างออกไปเล็กน้อยในสิ่งที่ถูกถาม

ฉันคิดว่าผู้สัมภาษณ์กำลังมองหาทางออกที่สำรวจโครงสร้างของวัตถุโดยใช้การสะท้อนบางอย่าง ข้อมูลที่วัตถุทั้งสามมีค่าเท่ากันควรแจ้งให้มีการสนทนาของการเปรียบเทียบเอกลักษณ์ของวัตถุ (A == B หมายถึงวัตถุนั้นเป็นวัตถุเดียวกันในหน่วยความจำจริง ๆ ) หรือการเปรียบเทียบความเท่าเทียมกันของวัตถุ (A == B หมายถึงค่าของวัตถุ เหมือน).

ความจริงที่ว่าผู้สัมภาษณ์กล่าวว่าคำตอบคือฟังก์ชั่น "เรียกซ้ำ" อาจระบุได้ว่าคาดว่าจะมีการอภิปรายเกี่ยวกับการคัดลอกและเปรียบเทียบแบบตื้นกับแบบลึก


2

มาปาร์ตี้สายนี้มาก แต่ฉันคิดว่าผู้สัมภาษณ์ถามคำถามนี้ไม่ถูกต้อง:

เขียนอัลกอริทึมเพื่อสำรวจอาร์เรย์และพิจารณาว่า A เท่ากับ B และ B เท่ากับ C และ A เท่ากับ C ตามลำดับนั้น

จากนั้นคำตอบที่ถูกต้องจะเป็นอัลกอริทึมแบบเรียกซ้ำ


1

ฉันถูกถามในการสัมภาษณ์ทางเทคนิคเพื่อเขียนอัลกอริทึมเพื่อสำรวจ "วัตถุ" (สังเกตเครื่องหมายคำพูด) โดยที่ A เท่ากับ B และ B เท่ากับ C และ A เท่ากับ C

objectในคำถามถูกสร้างขึ้นจากชิ้นส่วนและรูปแบบA,B and C triangleบุคคลนั้นถามว่าวัตถุ (คอลเลกชัน) มีส่วนเท่ากันทั้งหมดหรือไม่

ผู้สัมภาษณ์ต้องการทราบว่ามีชิ้นส่วนA, B and Cใดบ้างที่คุณสามารถบอกได้ว่าพวกเขาเท่าเทียมกันหรือไม่โดยไม่ติดอยู่ในวงวนไม่สิ้นสุด คำถามนี้เป็นเรื่องง่ายที่จะเข้าใจและพวกเขายังจัดการเพื่อขอมัน

พวกเขามีค่าเท่ากันทุกเมื่อแต่ที่ได้ง่ายเพียงแค่A == B && B == C && A == CA == B && A == C

ความเรียบง่ายของคำถามทำให้เกิดความสับสนและเป็นคำที่ไม่ดี

ควรใช้ถ้อยคำที่ถูกต้อง

เขียนอัลกอริธึมเพื่อตรวจสอบส่วนต่าง ๆ ของคอลเลกชันเพื่อดูว่ามันมีค่าเท่ากันหรือไม่ ต้องระมัดระวังไม่ให้ติดอยู่ในวงวนไม่สิ้นสุด ตัวอย่างเช่น; ถ้าส่วน A เท่ากับ B และ B เท่ากับ C และ A เท่ากับ C อาจทำให้เกิดปัญหาได้


คำตอบจากผู้สัมภาษณ์คือฉันควรจะเขียนฟังก์ชั่นวนซ้ำ

ใช่คุณสามารถตอบคำถามare all my parts equalโดยใช้ฟังก์ชั่นวนซ้ำ ไม่นี่ไม่ใช่ทางออกที่มีประสิทธิภาพ

แก้ไข : หลังจากความคิดบางอย่าง ไม่มันเป็นไปไม่ได้ที่จะตรวจสอบคอลเลคชั่นที่มีชิ้นส่วนเท่ากันทั้งหมดโดยใช้ฟังก์ชั่นวนซ้ำ

ทางออกที่มีประสิทธิภาพที่สุดมีดังนี้

function are_all_equal(parts)
{
   for(int i=1; i < parts.length; i++)
       if parts[i] is not same as parts[0]:
           return false;
   return true;
}

print are_all_equal(parts) ? "yes" : "no";

ปัญหานี้เกิดขึ้นในการเขียนโปรแกรมและขอให้บางคนเขียนอัลกอริทึมเพื่อทดสอบการรวบรวมเป็นปกติอย่างสมบูรณ์ ปัญหานี้สามารถแก้ไขได้ด้วยรหัสบรรทัดเดียวทั้งนี้ขึ้นอยู่กับภาษาการเขียนโปรแกรม

การใช้ถ้อยคำตามที่พวกเขาทำและคาดหวังว่าคำตอบที่ผิดจะไม่เป็นปกติ เนื่องจากคำถามนี้ถูกถามเมื่อปีที่แล้ว ฉันหวังว่าคุณจะได้ทำงานที่อื่น ฉันสนใจที่จะได้ยินจากโพสต์ต้นฉบับว่าสิ่งที่เกิดขึ้นกับเขา / เธอ


2
ทุกอย่างดูดีมาก - วิ่งเร็วที่สุดเท่าที่จะทำได้จาก บริษัท นั้นและมีความสุขนับตั้งแต่
Matt Cashatt

0

นี่เป็นคำถามสัมภาษณ์ของ Java หรือไม่ถ้าอย่างนั้นเขาอาจต้องการทดสอบทักษะของคุณด้วยการเอาชนะ "hashcode" และ "เท่ากับ"

คุณจะต้องแทนที่ทั้งสองวิธีและใช้วิธีการแทนที่ที่เท่าเทียมกันเพื่อหยุดการเรียกซ้ำเมื่อคุณเปรียบเทียบ A กับ A

การเปรียบเทียบของคุณสำหรับ "วัตถุ" A ถึง B, A ถึง C และ A ถึง A จะเป็นจริงทั้งหมด แต่หลังจากเอาชนะเฉพาะเมื่อวัตถุ A เมื่อเปรียบเทียบกับวัตถุ A จะกลับเป็นจริงเมื่อการเปรียบเทียบอื่น ๆ จะส่งคืนเท็จ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.