예제 #1
0
        static void Main(string[] args)
        {
            char[]      arr         = new char[] { 'H', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd' };
            CrazyString crazyString = new CrazyString(arr);

            Console.WriteLine(crazyString);
            Console.ReadKey();
        }
예제 #2
0
        /// <summary>
        /// Сравнение по хэшу
        /// </summary>
        /// По-идее должно работать быстрее
        /// <param name="crazyString"></param>
        /// <param name="hash"></param>
        /// <returns></returns>
        public bool Equals(CrazyString crazyString, bool hash)
        {
            string firstHash  = GetHash(mainArray);
            string secondHash = GetHash(crazyString.ConvertToChar());

            if (firstHash == secondHash)
            {
                return(true);
            }
            return(false);
        }
예제 #3
0
        public CrazyString Concat(CrazyString crazyString)
        {
            char[] returnedArray = new char[mainArray.Length + crazyString.mainArray.Length];
            for (int i = 0; i < mainArray.Length; i++)
            {
                returnedArray[i] = mainArray[i];
            }
            for (int i = mainArray.Length, j = 0; i < returnedArray.Length; i++, j++)
            {
                returnedArray[i] = crazyString.mainArray[j];
            }
            CrazyString returnedString = new CrazyString(returnedArray);

            return(returnedString);
        }
예제 #4
0
 /// <summary>
 /// Посимвольное сравнение
 /// </summary>
 /// <param name="crazyString"></param>
 /// <returns></returns>
 public bool Equals(CrazyString crazyString)
 {
     //Сделать через расчет хэша, так быстрее будет работать
     if (mainArray.Length != crazyString.mainArray.Length)
     {
         return(false);
     }
     for (int i = 0; i < mainArray.Length; i++)
     {
         if (mainArray[i] != crazyString.mainArray[i])
         {
             return(false);
         }
     }
     return(true);
 }