Betrachten Sie ein Geschäft, wo Artikel Preise pro Stück haben, sondern auch Volumen Preise. Zum Beispiel, Äpfel können $ 1.00 oder 4 für $ 3.00 sein.Point-of-Sale-Scannen API
Implementieren Sie ein Point-of-Sale-Scanning-API, die eine beliebige Bestellung von Produkten (auf ähnliche, was an einer Kasse Linie passieren würde) akzeptiert und gibt dann den richtigen Gesamtpreis für einen gesamten Warenkorb auf dem pro basierend Stückpreise oder die Volumenpreise wie anwendbar.
Hier sind die von Code aufgeführten Produkte und die Preise zu verwenden (es gibt keine Umsatzsteuer):
Produktcode | Preis
A | $ 2,00 pro Stück oder 4 Stück für $ 7,00
B | $ 12,00
C | $ 1,25 oder $ 6 für ein Sixpack
D | $ 0,15
Es sollte eine Top-Level-Point-of-Sale-Terminal Service-Objekt, das aussieht wie der Pseudocode unten aussieht. Sie sind frei zu entwerfen und den Rest des Codes implementieren jedoch wünschen Sie, einschließlich, wie Sie die Preise im System angeben :
terminal.setPricing (...) terminal.scan („A“) -Anschluss. scan ("C") ... usw. Ergebnis = terminal.total
Hier sind die minimalen Eingaben, die Sie für Ihre Testfälle verwenden sollten. Diese Testfälle müssen in Ihrem Programm angezeigt werden:
Scannen Sie diese Artikel in dieser Reihenfolge: ABCDABAA; Überprüfen Sie, dass der Gesamtpreis 32,40 $ ist. Scannen Sie diese Artikel in dieser Reihenfolge: CCCCCCC; Überprüfen Sie, ob der Gesamtpreis 7,25 US-Dollar beträgt. Scanne diese Gegenstände in dieser Reihenfolge: ABCD; Stellen Sie sicher, dass der Gesamtpreis 0,20 € ( ) 15,40 € beträgt.
-2
A
Antwort
2
1) Für jeden Artikel den Einheitspreis, den Gruppenpreis und die Einheiten pro Gruppe speichern.
2) Während der Scan-Phase einfach die Anzahl der Einheiten pro Element verfolgen.
3) Für jedes Element, inkrementiert die Kosten von:
(number units)/(units per group for item) * group price +
(number units) % (units per group for item) * unit price
Lineares Menge an Platz auf der Reihenfolge der Anzahl der Elemente verwendet wird und eine lineare Menge verwendet, um die Zählungen der Elemente abzutastenden Spur . Die Laufzeit ist ebenfalls linear.
Verwandte Themen
- 1. Google Speech API + Flex API
- 2. Inherited Web API API-Controller
- 3. Flickr api vs. Picasa api
- 4. Android-Entwicklung: api 14 vs api 15
- 5. Benutzerdefinierte API-Zugriffsrichtlinien und API-Gateways
- 6. Python API-Design für bestehende Java API
- 7. Alternative API für Google Blog-Suche API
- 8. WSO2 API Manager Log Erstellen einer API
- 9. API-Lasttests, Leistungstests, Azure-API-App
- 10. Asp.NET Web API 2.0: Schlüsselwörter API-Dokumentation
- 11. WordPress REST API Globale Suche (API V2)
- 12. Google Maps API [Anfahrt API] Wegpunktbegrenzung?
- 13. Android Kalender API vs Kalender Provider API
- 14. Mesos HTTP API vs Native API
- 15. Mehrere API-Anfragen mit OVH-API-Wrapper
- 16. Google Kontakte-API und People-API
- 17. Cocoa API - Enthält es eine Diff API?
- 18. RESTful API vs Web Service API
- 19. Rails API - Aufrufe in API-Antworten umwandeln
- 20. REST API zusammen mit Websocket API
- 21. Gitlab API-Zugang: Fehler beim internen API
- 22. REST-API und nicht-REST-API
- 23. Cloud Vision API für verschiedene API-Funktion
- 24. Herabstufung von API 24 auf API 23
- 25. Windows Core Audio API + WaveOutXxx API
- 26. meine API mit einer API-Secure Key
- 27. Anruf Rest-API von Java Rest API
- 28. API-Management-REST-API funktioniert nicht
- 29. Facebook Graph API API-Zwischenspeicherung JSON-Antwort
- 30. Wetter Api
Auf einer hohen Ebene, was war Ihre vorgeschlagene Lösung? – gbulmer
Müssen Sie nur etwas schreiben, das funktioniert, gibt es Einschränkungen, wie schnell es sein muss oder wie es gestaltet werden muss? – twain249