Loading...
vukata avatar vukata 0 Точки

Проблем със задача 2. Song Encryption от финалния изпит за Tech Module C# от декември 2018

Здравейте,

Прилагам решение на задачата, което съм направил и ми дава 70/100. Някой може ли да ми помогне и да ме насочи какво пропускам?Благодаря предварително.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;

namespace SongEncryption
{
    class Program
    {
        static void Main(string[] args)
        {
            string input = Console.ReadLine();
            while (input != "end")
            {
                if(Regex.Matches(input, @"[A-Z][a-z' ]+[:][A-Z ]+").Count==1 &&
                    Regex.Matches(input.Split(':')[0], @"[A-Z]").Count==1)
                {             
                    var encryptedInfo = Encrypt(input);
                    Console.WriteLine($"Successful encryption: {encryptedInfo}");
                }
                else
                {
                    Console.WriteLine($"Invalid input!");
                }
                input = Console.ReadLine();
            }
        }

        private static string Encrypt(string text)
        {
            int key = text.Split(':')[0].Length;
            StringBuilder inputAsSb = new StringBuilder();
            for (int i = 0; i < text.Length; i++)
            {
                inputAsSb.Append(text[i]);
            }
            for (int j = 0; j < inputAsSb.Length; j++)
            {
                if (inputAsSb[j] != ' ' && inputAsSb[j] != 39)                
                {
                    if (inputAsSb[j] == ':')
                    {
                        inputAsSb[j] = '@';
                    }
                    else
                    {
                        if (inputAsSb[j] >= 65 && inputAsSb[j] <= 90)
                        {
                            if (inputAsSb[j] + key > 90)
                            {
                                inputAsSb[j] = (char)(inputAsSb[j] + key - 26);
                            }
                            else
                            {
                                inputAsSb[j] = (char)(inputAsSb[j] + key);
                            }
                        }
                        if (inputAsSb[j] >= 97 && inputAsSb[j] <= 122)
                        {
                            if (inputAsSb[j] + key > 122)
                            {
                                inputAsSb[j] = (char)(inputAsSb[j] + key - 26);
                            }
                            else
                            {
                                inputAsSb[j] = (char)(inputAsSb[j] + key);
                            }
                        }
                    }
                }
            }
            return inputAsSb.ToString();
        }
    }
}

Тагове:
0
Programming Fundamentals 07/04/2019 12:04:57
Sad_homecoming avatar Sad_homecoming 135 Точки

Регекса те спъва, смени го на @"^([A-Z]{1}[a-z\' ]+):([A-Z ]+)\b"

0
Krisibanov avatar Krisibanov 5 Точки

https://pastebin.com/VhcVmUAt Виж моето решение. Дано ти помогне 

 

0
AlexanderJarov avatar AlexanderJarov 17 Точки

Здравей, Колега,

Регекса ти е малко неточен. По този начин написан хваща "Jakson" от "Michael Jackson" и "Aguilera" от "Christina Aguilera", а трябва да не хваща нищо в тези два случая (Artiststarts with capital letter, followed by lowercase letters.).

ето ти пример за регекс:

 string artistPattern = @"^[A-Z][a-z\s']+$";

string songPattern = @"^[A-Z\s]+$";

 

ето и примерно решение:

https://pastebin.com/GizZHW9Q

0
Petya_koleva avatar Petya_koleva 104 Точки

Ето ти още един вариант на регекс ^(?<artist>[A-Z][a-z ']*)(?<dots>:)(?<song>[A-Z ]*)$"

-1
desireous avatar desireous 0 Точки

И аз имам проблем дава ми 90 точки а всичко изглежда да е наред.Може ли някой да помогне да си намеря грешката.

https://pastebin.com/vs5FTQ6E

Благодаря предварително!

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.