Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace mainSolution
- {
- class MyString
- {
- private string line = "";//основное поле
- public int Length//свойство длинны
- {
- get { return line.Length; }
- }
- public char this[int index]//индексатор
- {
- get { return line[index]; }
- }
- public MyString() { }//пустой конструктор
- public MyString(string line) { this.line = string.Copy(line); }//конструктор для строкового литерала
- public int countOfDigit()//подсчет количества цифр в строке
- {
- int result = 0;
- for (int i = 0; i < line.Length; ++i)
- if (char.IsDigit(line[i]))
- result++;
- return result;
- }
- public void singleСharacters()//вывод всех симовлов, которые встречаются в строке только один раз
- {
- int[] сharacters = new int[3000];
- for (int i = 0; i < line.Length; ++i)
- сharacters[line[i]]++;
- for (int i = 0; i < сharacters.Length; ++i)
- if (сharacters[i] == 1)
- Console.Write("{0} ", (char)i);
- }
- public void longestSequence()//вывод самой длинной подстроки, состоящей из одних и тех же символов
- {
- string res = "";
- int l = 0; int r = 0;
- while (r < line.Length)
- {
- while (r < line.Length && line[l] == line[r]) r++;
- if (r - l > res.Length)
- res = line.Substring(l, r - l);
- l = r;
- }
- Console.WriteLine(res);
- }
- public static bool operator !(MyString a)//перегрузка оператора '!'
- {
- if (a.Length > 0)
- return true;
- return false;
- }
- public static bool operator &(MyString a, MyString b)//перегрузка оператора '&'
- {
- if (a.Length != b.Length)
- return false;
- for (int i = 0; i < a.Length; ++i)
- if (char.ToLower(a[i]) != char.ToLower(b[i]))
- return false;
- return true;
- }
- public static bool operator true(MyString a)//перегрузка констант true и false
- {
- for (int i = 0; i < a.Length / 2; ++i)
- if (a[i] != a[a.Length - i - 1])
- return false;
- return true;
- }
- public static bool operator false(MyString a)
- {
- for (int i = 0; i < a.Length / 2; ++i)
- if (a[i] != a[a.Length - i - 1])
- return false;
- return true;
- }
- public static implicit operator MyString(string s)//явное приведение к MyString
- {
- return new MyString(s);
- }
- public static implicit operator string(MyString s)//явное приведение к string
- {
- return string.Copy(s.line);
- }
- }
- static class Program
- {
- static void Main(string[] args)
- {
- MyString a = new MyString("abacaba");
- a.singleСharacters();
- }
- }
- }
Add Comment
Please, Sign In to add comment