Gemeinsame Pseudo-Code Fragen, Rätsel und Herausforderungen

stimmen
5

Ich bin auf der Suche nach Beispielen für Pseudo-Code Probleme, die Sie in einem Interview oder gebeten worden, gebeten worden, als Teil Ihrer Arbeit oder Ausbildung zu vertreten. Ich bin nicht auf der Suche nach Beispielen aus einem beliebigen Domäne insbesondere so kann es in Beziehung gesetzt wird Muster zu entwerfen, Algorithmen, Datenstrukturen, Caching-Strategien, alles mit Software Engineering und Entwicklung, einfach oder komplex zu tun.

Zum Beispiel sind einige, die ich gefunden habe, in erster Linie mit Sortier- und Suchtechniken:

Bubblesort :

procedure bubbleSort( A : list of sortable items ) defined as:
  do
    swapped := false
    for each i in 0 to length(A) - 2 inclusive do:
      if A[i] > A[i+1] then
        swap( A[i], A[i+1] )
        swapped := true
      end if
    end for
  while swapped
end procedure

Insertionsort :

insertionSort(array A)
begin
    for i := 1 to length[A]-1 do
    begin
        value := A[i];
        j := i - 1;
        done := false;
        repeat
            if A[j] > value then
            begin
                A[j + 1] := A[j];
                j := j - 1;
                if j < 0 then
                    done := true;
            end
            else
                done := true;
        until done;
        A[j + 1] := value;
    end;
end;

Binäre Suche :

   BinarySearch(A[0..N-1], value, low, high) {
       if (high < low)
           return -1 // not found
       mid = low + ((high - low) / 2)
       if (A[mid] > value)
           return BinarySearch(A, value, low, mid-1)
       else if (A[mid] < value)
           return BinarySearch(A, value, mid+1, high)
       else
           return mid // found
   }

Vielleicht können wir eine anständige Liste von Pseudo-Code-Algorithmen und Probleme aufzubauen, wenn viele Menschen ihre Gedanken und Erfahrungen auszutauschen.

Ich suche mich mit der Pseudo-Code-Darstellung zu kommen, wie die Praxis. Also selbst wenn Sie nicht ein Pseudo-Code Beispiel finden, aber Sie denken, es wäre ein ideales Konzept sein in dieser Art und Weise darzustellen, die helfen würden.

Ich habe auch ein paar Fragen zu dem Thema bezogen werden:

  • Welche Pseudo-Code haben Sie gefragt worden, bevor sie in einem Interview zu schreiben?
  • Sie neigen dazu, diese Fragen zu kurzen, einfachen Algorithmen zu beziehen, die eine oder zwei Funktionen lang sind?
  • Sollten sprachspezifische Konstrukte vermieden werden, wenn Pseudo-Code zu schreiben? Da die Darstellung sein sprachunabhängig zu verstehen ist, ist es sicherer, nicht Begriffe wie Entsorgen und foreach zu verwenden, die in jeder Sprache gibt es nicht?

Vielen Dank


Bearbeiten:

Ein paar Beispiele für einige mehr ich gefunden habe, werde ich die Bearbeitung behalten, wie ich mehr finden:


Schreiben Sie eine Funktion, die eine einzelne Saite nimmt die Reihenfolge der Wörter innerhalb eines Satzes rückgängig zu machen, die Worte nicht umgekehrt:

Input: „Die Katze saß auf der Matte, mit einer anderen Katze!“

Ausgabe: „Katze eine andere mit Matte, die auf saß Katze Der“


Schreiben Sie eine Funktion, die eine einzelne Zeichenfolge nimmt, die das Wort zurückkehren, die innerhalb dieser Zeichenfolge meisten auftritt, ignoriert Fall und Zeichensetzung. Wenn mehr als ein Wort, das die gleiche Anzahl von Vorkommnissen hat zurückkehren denjenigen, der zuerst auftrat:

Input: „Die Katze saß auf der Matte, mit einer anderen Katze!“

Ausgang: die


Schreiben Sie eine Funktion, den Charakter zu finden, die die höchste Anzahl von Vorkommnissen innerhalb einer bestimmten Zeichenfolge hat, ignoriert Fall. Wenn es mehr als ein Zeichen mit der gleichen höchsten Vorkommen ist, bringen Sie das Zeichen, das zuerst innerhalb der Zeichenfolge erschien.

Input: Character

Ausgang: c


Schreiben Sie eine Funktion, die eine Zeichenfolge umkehrt

Input: reverse

Ausgang: esrever

Veröffentlicht am 15/08/2010 um 11:54
quelle vom benutzer
In anderen Sprachen...                            


5 antworten

stimmen
1

Ich habe ich nicht schon einmal gefragt worden Pseudo-Code in einem Interview zu schreiben (noch Student), aber ein Freund von mir, für einen Sommer-Job zu Google angewandt wurde gebeten, einen regulären Ausdruck Parser zu schreiben, die mit einer Untergruppe von regexps umgehen konnten ( iirc, alphanumerische Eingabe nur und unter Verwendung der *, + und {x, y} Notation). Ich betrachte mich für einen Sommer-Job, um sie im nächsten Jahr der Anwendung und bin von der Idee, zu versuchen zu schreiben, so etwas auf der Stelle XD erschrecken.

Ich glaube, er löste es zwei Funktionen, die aus voneinander rekursiv. Nicht sicher, wie.

Oh, er war nicht nur gefragt, Pseudo-Code für diese zu schreiben, btw. Er wurde gefragt tatsächlichen C ++ Code, auf der Stelle zu schreiben, das wäre zu kompilieren. (In einem Dokument Google Text & Tabellen, als auch).

Beantwortet am 15/08/2010 um 11:57
quelle vom benutzer

stimmen
3

Ich habe nicht es noch gefragt, aber es ist die klassische FizzBuzz Frage.

Schreiben Sie ein Programm, das die Zahlen von 1 bis 100 druckt aber für ein Vielfaches von drei print „Fizz“ statt die Anzahl und für die ein Vielfaches von fünf print „Buzz“. Für Zahlen, die ein Vielfaches von beiden drei und fünf print „FizzBuzz“ sind.

wie bei gefunden http://www.codinghorror.com/blog/2007/02/why-cant-programmers-program.html

Es ist als eine einfache Screening-Frage gemeint, und keine wesentlichen Schwierigkeiten zu stellen, sehr neue Programmierer zu glätten.

Beantwortet am 15/08/2010 um 11:58
quelle vom benutzer

stimmen
1

Ich wurde gebeten, vor ein paar Jahren eine Pseudo-Code-Lösung für diesen in einem Interview für ein Praktikum zu schreiben:

Schreiben Sie einen Algorithmus, der, da einen Verzeichnispfad, die Gesamtzahl der Dateien zählen kann, die in diesem Verzeichnis und alle Unterverzeichnisse fallen.

Die Möglichkeit, dieses Problem zu lösen zeigt ein Verständnis des Baumdurchlaufes.

Beantwortet am 20/08/2010 um 13:22
quelle vom benutzer

stimmen
0

Es dauerte eine lange Zeit, es herauszufinden, aber hier ist meine Excel-VBA-Lösung, um den Satz Umkehr Problem.

Public Sub SentenceReverse()

Dim InSentence As String 'Input sentence string
Dim OutSentence As String 'Output sentence string
Dim p As Integer 'Word Start
Dim q As Integer 'Word length

p = 1

InSentence = ActiveSheet.Range("A1").Value 'Assign the sentence to a string

For i = 2 To Len(InSentence) + 1 'Loop through all the characters of the input sentence
    If (Mid(InSentence, i, 1) = " " Or i = Len(InSentence) + 1) Then 'This character is a space or this is the the end of the sentence
        q = i - p 'Set the word length to the number of this position minus the position of the start of this word
        OutSentence = Mid(InSentence, p, q) & " " & OutSentence 'Add this word to the start of the output string
        p = i + 1 'Set the start of the next word as the position of this space + 1
    End If
Next i

MsgBox (OutSentence)

End Sub
Beantwortet am 12/07/2015 um 18:22
quelle vom benutzer

stimmen
0

Ich weiß nicht, ob dies der eleganteste Ansatz ist, aber hier ist eine Lösung, die das Wort zu finden, die am häufigsten auftritt. Hier ist, wie ich mich ihm näherte.

  1. Finden Sie die Anzahl der Wörter, indem sie durch den Satz Looping und erhöhen eine Wortvariable zählen, wenn Sie einen Platz finden, oder Sie das Ende des Satzes. Erstellen Sie ein Wortfeld dieser Länge.
  2. Verwendung einer Variablen für den Beginn eines jeden Wortes und die anderen Variablen für die Länge eines jeden Wortes, Schleife durch den Satz wieder und weisen die vorangehenden Figuren auf ein Element des Wortes Array.
  3. Für jedes Wort-Array-Element, eine Schleife durch jedes Element der Wortarray, und vergleicht es (verschachtelte Schleife). Wenn es eine Übereinstimmung ist, erhöhen Sie den Wert für diese Position einer Zählung-Array, das zeigt, wie oft jedes Wort erscheint.
  4. Schleife durch das Zählfeld und vergleichen den Wert in jedem Feld auf den Maximalwert bisher gefunden. Dies gibt die maximale Anzahl und damit das häufigste Wort. Ausgang dieses Wort.

    Public Sub FindCommonWord ()

    Dim Insentence As String Dim WordArray () As String Dim CountArray () As Integer Dim p As Integer 'Word starten Dim q As Integer' Wortlänge Dim w As Integer 'Word Count Dim tw As String' dieses Wort Dim R As Integer ‚Position die gebräuchlichste Wort

    p = 1 w = 1

    Insentence = ActiveSheet.Range ( "A1"). Value ‚Weisen Sie den Satz in einen String

    ‚Schleife durch alle Zeichen und zählen die Anzahl der Wörter Für h = 2 bis Len (Insentence) + 1‘ Schleife durch alle Zeichen des Eingabesatzes Wenn (Mid (Insentence, h, 1) = ‚‘ Oder h = Len ( Insentence) + 1) Then ‚Dieser Charakter ist ein Raum oder das ist das das Ende des Satzes w = w + 1 End If Next h

    w = w - 1

    ReDim WordArray (w) ReDim CountArray (w)

    w = 1 ‚Schleife durch alle Figuren und für i = 2 Worte Elemente eines Arrays zuweisen Len (Insentence) + 1‘ eine Schleife durch alle Zeichen des Eingabesatzes If (Mid (Insentence, i, 1) = ‚‘ oder i = Len (Insentence) + 1) Then ‚dieser Charakter ist ein Raum oder das ist das das Ende des Satzes q = i - p‘ Stellen Sie die Wortlänge auf die Anzahl dieser Position minus der Position des Beginns dieser Wort WordArray (w) = Mid (Insentence, p, q) p = i + 1 'Position des nächsten Wortes w = w + 1' Nächstes Wort End If Next iw = w - 1 ‚letztes Wort erreicht

    ‚Schleife durch das Array an jedem Wort zu arbeiten für j = 1 bis W‘ Schleife durch das Array und zählen die Anzahl der dieses Wort Für k erscheint = 1 bis W Wenn UCase (WordArray (k)) = UCase (WordArray (j )) CountArray (j) = CountArray (j) + 1 Next k Next j dann

    R = 1

    ‚, Um einen Maximalwert in der Zählerarray für n = 1 bis w Wenn CountArray (n)> R Dann R = n Next n MsgBox ( "Das häufigste Wort" & WordArray (R) & "in Position" & R & "")

    End Sub

Beantwortet am 12/07/2015 um 19:58
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more