โจทย์ทั้งหมด
ง่าย 0 ข้อที่แก้แล้ว อัตราผ่าน 0%

Adapter ของเซนเซอร์อุณหภูมิ

ดัดแปลงค่าที่อ่านได้จากเซนเซอร์ Fahrenheit, Kelvin และ Celsius ให้มาอยู่ในอินเทอร์เฟซ Celsius เดียว

สิ่งที่คุณจะได้เรียนรู้

  • ห่อรูปแบบที่ต่างกันไว้หลังอินเทอร์เฟซเดียว
  • แปลงฟาเรนไฮต์และเคลวินเป็นเซลเซียส
  • อ่านอักษรหน่วยและค่า

โจทย์

แพตเทิร์น adapter ช่วยให้โค้ดที่คาดหวังอินเทอร์เฟซหนึ่ง สามารถทำงานกับอ็อบเจ็กต์ที่ให้อีกอินเทอร์เฟซหนึ่งได้ ที่นี่ แดชบอร์ดเข้าใจได้เฉพาะองศา Celsius แต่เซนเซอร์รายงานหน่วยต่างกัน

แต่ละค่าที่อ่านได้เป็นอักษรแทนหน่วย ตามด้วยโคลอนและค่า:

  • C:<value>: เป็น Celsius อยู่แล้ว.
  • F:<value>: Fahrenheit, แปลงด้วย (F − 32) × 5 / 9.
  • K:<value>: Kelvin, แปลงด้วย K − 273.15.

Implement sensor_adapter(readings).

ข้อมูลนำเข้า

readings: The raw sensor readings.

ผลลัพธ์

Return every reading in Celsius, in order. Answers within 1e-6 are accepted.

เงื่อนไข

1 ≤ จำนวนค่าที่อ่านได้ ≤ 1,000

−1,000 ≤ ค่า ≤ 1,000

ตัวอย่าง

ตัวอย่างที่ 1
อินพุต:
readings = ["C:21.5", "F:212", "K:273.15"]

ผลลัพธ์ที่คาดหวัง:
expected = [21.5, 100.0, 0.0]
อินพุต:
std::vector<std::string> readings = {"C:21.5", "F:212", "K:273.15"};

ผลลัพธ์ที่คาดหวัง:
std::vector<double> expected = {21.5, 100.0, 0.0};
อินพุต:
string[] readings = new string[] {"C:21.5", "F:212", "K:273.15"};

ผลลัพธ์ที่คาดหวัง:
double[] expected = new double[] {21.5, 100.0, 0.0};

คำอธิบาย

21.5 °C คงเดิม 212 °F คือ (212 − 32) × 5 / 9 = 100 °C และ 273.15 K คือ 0 °C

ตัวอย่างที่ 2
อินพุต:
readings = ["F:-40"]

ผลลัพธ์ที่คาดหวัง:
expected = [-40.0]
อินพุต:
std::vector<std::string> readings = {"F:-40"};

ผลลัพธ์ที่คาดหวัง:
std::vector<double> expected = {-40.0};
อินพุต:
string[] readings = new string[] {"F:-40"};

ผลลัพธ์ที่คาดหวัง:
double[] expected = new double[] {-40.0};

คำอธิบาย

−40 เท่ากันในทั้งสองสเกล: (−40 − 32) × 5 / 9 = −40

แนวทางการแก้

ลองทำเองก่อน แล้วค่อยเปิดคำใบ้ทีละข้อ

คำใบ้ 1

ตัวอักษรก่อนโคลอนบอกหน่วย

คำใบ้ 2

แปลงค่าที่อ่านได้แต่ละค่าเป็นเซลเซียสด้วยสูตรของมัน

คำใบ้ 3

อ่านตัวเลขหลังโคลอนเป็นทศนิยม รวมถึงค่าติดลบ

ความซับซ้อนที่คาดหวัง

เวลา O(จำนวนค่าที่อ่านได้), หน่วยความจำเพิ่ม O(จำนวนค่าที่อ่านได้)

แหล่งอ้างอิง

โจทย์นี้ปรับให้เหมาะกับ CodeUtility กรุณาทำตามคำชี้แจงและข้อจำกัดด้านบน

เรียนรู้จากคนอื่น

แนวทางจากชุมชน

ยังไม่มีวิธีทำที่เผยแพร่ ลองแก้โจทย์นี้เพื่อแชร์วิธีแรก