


Maximieren Sie die fehlenden Werte innerhalb eines bestimmten Zeitraums im Format HH:MM
Stellt die angegebene Zeichenfolge der Länge fünf als Zeitangabe im HH:MM-Format dar. Die Zeichenfolge kann einige „?“ enthalten und wir müssen sie durch eine beliebige Zahl ersetzen, damit das Ergebnis eine gültige Zeit und wahrscheinlich die größtmögliche Zeit ist. Darüber hinaus sind die angegebenen String-Nummern gültig und das „:“ erscheint an der genauen Position des Strings. Wir werden zuerst Brute-Force-Methoden und dann effiziente Methoden verwenden.
Beispiel Beispiel
Geben Sie 1 ein
Given string: 12:5? Output: 12:59
Erklärung
lautet:Erklärung
Wir haben nur einen Platz zu besetzen und die maximale Zeit, die wir bekommen können, ist 12:59.
Geben Sie 2 ein
Given string: ?0:?9 Output: 20:59
Erklärung
lautet:Erklärung
Wir haben hier zwei freie Plätze, zunächst konzentrieren wir uns auf den Stundenteil, wir haben drei Optionen 0, 1 und 2, um sie zu füllen. Für den Minutenteil haben wir die Wahl zwischen 0 und 5, zur Maximierung können wir 5 eingeben.
Methode
Wir haben uns Beispiele angesehen. Schauen wir uns nun die verschiedenen Arten von Situationen an, mit denen wir konfrontiert sein könnten −
Wir haben zwei Teile der Zeichenfolge, den Stundenteil und den Minutenteil.
Der Stundenteil reicht von 0 bis 23 und der Minutenteil reicht von 0 bis 59.
Im Stundenteil gibt es noch mehr Situationen−
‘x?’ wobei x 0, 1 und 2 sein kann. Für 0 können wir 0 als beste Wahl wählen, für 1 können wir 9 als beste Wahl wählen und für 2 können wir 3 als beste Wahl wählen.
'?x', wobei x zwischen 0 und 9 liegen kann. Wenn x im Bereich von 0 bis 3 liegt, können wir es durch 2 ersetzen, andernfalls ist 1 das Beste.
‘??’ Da wir maximieren müssen, ersetzen wir es durch 23.
Besprechungsprotokoll, einige haben weitere Fälle −
‘x?’ wobei x im Bereich von 0 bis 5 liegen kann. 9 wäre unsere beste Wahl, um „?“ zu ersetzen.
‘?x‘ wobei x im Bereich von 0 bis 9 liegen kann. 5 wäre unsere beste Wahl, um „?“ zu ersetzen.
"??" weil wir es maximieren müssen und es dann durch 59 ersetzen.
Werfen wir einen Blick auf den Code, der die oben genannten Schritte implementiert –
Die chinesische Übersetzung vonBeispiel
lautet:Beispiel
#include <iostream> using namespace std; // function to replace hours string replaceHours(string s){ if(s[0] == '?' && s[1] == '?'){ //Both hour characters are '?' // replace with the maximum hour we can achieve s[0] = '2'; s[1] = '3'; } else if(s[0] == '?'){ // if the second number of hours is in the range 0 to 3 // replace by 2 if(s[1] < 4){ s[0] = '2'; } else{ s[0] = '1'; // otherwise replace by one } } else if(s[1] == '?'){ // if the first character is '2' we can go only upto 3 if(s[0] == '2'){ s[1] = '3'; } else{ s[1] = '9'; // else we can go for 9 } } return s; } // function to replace minutes string replaceMinutes(string s){ if(s[3] == '?' && s[4] == '?'){ // both minutes characters are '?' // replace with maximum minutes we can acheive s[3] = '5'; s[4] = '9'; } else if(s[3] == '?'){ // we can maximum get 5 here s[3] = '5'; } else if(s[4] == '?'){ // we can get maximum 9 here s[4] = '9'; } return s; } int main(){ string str = "2?:3?"; // given string // calling the function for updation of the minutes str = replaceMinutes(str); // calling to the function for updation of the hours str = replaceHours(str); // printing the final answer cout<<"The maximum time we can get by replacing ? is: "<< str<<endl; return 0; }
Ausgabe
The maximum time we can get by replacing ? is: 23:39
Zeitliche und räumliche Komplexität
Die zeitliche Komplexität des obigen Codes ist O(1) oder konstant, da wir keine Schleifen oder rekursiven Aufrufe verwenden, sondern nur die If-Else-Bedingungen prüfen
Die Speicherplatzkomplexität des obigen Codes beträgt O(1), da wir keinen zusätzlichen Speicherplatz verwenden. Außerdem beträgt die Größe der von uns übergebenen Zeichenfolge für diese Funktion immer einen festen Wert von 5.
Hinweis: Um den Code schöner oder lesbarer zu machen, können Sie switch-Anweisungen verwenden. Sie haben keinen Einfluss auf die zeitliche oder räumliche Komplexität und machen das Lesen effizienter.
Auch das Zurückverfolgen und erneute Überprüfen ist eine Lösung, aber dies prüft jeden Fall und ist hier nicht effizient umzusetzen.
Fazit
In diesem Tutorial erhalten wir eine Zeichenfolge, die die Zeit im 24-Stunden-Format darstellt. Es gibt einige „?“ in der Zeichenfolge, die ersetzt werden müssen, um die maximal gültige Zeit zu erhalten, und die Zeichen in der Zeichenfolge verweisen garantiert immer auf die gültige Zeit. Wir haben eine if-else-Bedingung und zwei Funktionen verwendet, um das „?“ durch den entsprechenden Fall zu ersetzen. Da wir keine Schleifen oder rekursiven Funktionen verwenden, ist die zeitliche und räumliche Komplexität des obigen Codes konstant.
Das obige ist der detaillierte Inhalt vonMaximieren Sie die fehlenden Werte innerhalb eines bestimmten Zeitraums im Format HH:MM. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

In diesem Artikel werden die Funktionstypen zur Rückgabe von Funktionen (int, float, char usw.), abgeleitet (Arrays, Zeiger, Strukturen) und Hohlraumtypen enthält. Der Compiler bestimmt den Rückgabetyp über die Funktionserklärung und die Rückgabeerklärung unter der Durchsetzung

GULC ist eine Hochleistungs-C-Bibliothek, die minimale Overheads, aggressive Einbeziehung und Compiler-Optimierung priorisiert. Ideal für leistungskritische Anwendungen wie Hochfrequenzhandel und eingebettete Systeme, sein Design betont die Einfachheit, Modul

Dieser Artikel erläutert die C -Funktionserklärung im Vergleich zu Definition, Argumentübergabe (nach Wert und Zeiger), Rückgabetwerten und gemeinsamen Fallstricken wie Speicherlecks und Typenfehlanpassungen. Es betont die Bedeutung von Erklärungen für Modularität und Provi

In diesem Artikel wird die C -Funktion für die String -Fallkonvertierung beschrieben. Es erklärt mit toupper () und tolower () aus ctype.h, iteriert durch Saiten und Handhabung von Null -Terminatoren. Häufige Fallstricke wie das Vergessen von ctype.h und das Modifizieren von String -Literalen sind

Dieser Artikel untersucht die Speicher des C -Funktionsrückgabewerts. Kleine Renditewerte werden in der Regel in Registern für Geschwindigkeit gespeichert. Größere Werte können Zeiger zum Speicher verwenden (Stapel oder Heap), die die Lebensdauer beeinflussen und die manuelle Speicherverwaltung erfordern. Direkt ACC

Dieser Artikel analysiert die vielfältigen Verwendungen des Adjektivs "Unterscheidet", die seine grammatikalischen Funktionen, gemeinsame Phrasen (z. B. "unterscheidet sich von" "deutlich anders") und nuancierte Anwendung in formalen vs. informellen Anwendung

In diesem Artikel werden die C -Standard -Vorlagenbibliothek (STL) erläutert, die sich auf seine Kernkomponenten konzentriert: Container, Iteratoren, Algorithmen und Funktoren. Es wird beschrieben, wie diese interagieren, um die generische Programmierung, die Verbesserung der Codeeffizienz und die Lesbarkeit t zu ermöglichen

Dieser Artikel beschreibt die effiziente Verwendung von STL -Algorithmus in c. Es betont die Auswahl der Datenstruktur (Vektoren vs. Listen), Algorithmus -Komplexitätsanalyse (z. B. std :: sortieren vs. std :: partial_sort), Iteratoranwendungen und parallele Ausführung. Häufige Fallstricke wie
