C# :: Aufgabe #357

2 Lösungen Lösungen öffentlich

Text gemäß Vorlage neu sortieren

Anfänger - C# von JKooP - 12.02.2021 um 09:53 Uhr
Ein durcheinandergeratener Text soll gemäß einer Vorlage (Array) neu sortiert werden.

Dazu soll eine Methode/Funktion erstellt werden, mit der man die Zeichen des
Ausgangstextes gemäß den vorgegebenen Positionen im Array neu anordnet.

Ausgangstext = "programmyourtrainer"

Array = [ 9, 10, 11, 12, 13, 14, 15, 16, 5, 6, 7, 8, 0, 1, 2, 3, 4, 17, 18 ]

Zieltext = "trainyourprogrammer"

Erläuterung:

Das erste Zeichen des Ausgangstextes (p) muss gem. Array an die 9. Position.
Das Zeichen (y) muss an die 5. Position. Achtung: Array ist nullbasiert!

_ _ _ _ _ y _ _ _ p _ _ _ _ _ _ _ _


Viel Spaß

Lösungen:

vote_ok
von Frank (410 Punkte) - 22.02.2021 um 20:33 Uhr
Quellcode ausblenden C#-Code
using System;

namespace BuchstabenUmsortieren
{
    class Program
    {
        static void Main(string[] args)
        {
            string Ausgangstext = "programmyourtrainer";

            int[] order = new int[] { 9, 10, 11, 12, 13, 14, 15, 16, 5, 6, 7, 8, 0, 1, 2, 3, 4, 17, 18 };
            char[] result = new char[Ausgangstext.Length];
            int counter = 0;
            foreach (char letter in Ausgangstext)
            {
                result[order[counter++]] = letter;
            }
            Console.WriteLine($"result: {new String(result)}");
        }
    }
}

vote_ok
von JKooP (18090 Punkte) - 01.04.2021 um 11:03 Uhr
NET 5.x; C# 9.x; VS-2019
Quellcode ausblenden C#-Code
using System;

var s = "programmyourtrainer";
var i = new int[] { 9, 10, 11, 12, 13, 14, 15, 16, 5, 6, 7, 8, 0, 1, 2, 3, 4, 17, 18 };
Console.WriteLine(RestoreString(s, i));

static string RestoreString(string s, int[] indices)
{
    var arr = new char[indices.Length];
    var k = 0;

    foreach (var i in indices)
        arr[i] = s[k++];

    return new string(arr);
}