Как найти максимальное число символов

ВАРИАНТ 1

Текстовый файл состоит из символов арабских цифр (0, 1, 2, 3, ….9). Определите максимальное количество идущих подряд символов в прилагаемом файле, среди которых нет символов 0, стоящих рядом.

Для выполнения этого задания следует написать программу.

Решение и ответ

f = open(’24_var_1-4.txt’)
s = f.readline()
f.close()
m=k=1 #минимальное количество символов
for i in range(1, len(s)):
    if  s[i-1] + s[i] !=’00’: 
        k += 1
    else:
        m = max(k,m) #запоминаем максимальную длину подпоследовательности
        k = 1
print(m)
Ответ977

ВАРИАНТ 2

Текстовый файл состоит из символов арабских цифр (0, 1, 2, 3, ….9). Определите максимальное количество идущих подряд символов в прилагаемом файле, среди которых нет трех символов 0, стоящих рядом.

Для выполнения этого задания следует написать программу.

Решение и ответ

f = open(’24_var_1-4.txt’)
s = f.readline()
f.close()
m=k=2 #минимальное количество символов

for i in range(2, len(s)):
    if  s[i-2] + s[i-1] + s[i]!=’000′:
        k += 1
    else:
        m = max(k,m) #запоминаем максимальную длину подпоследовательности
        k = 2 #как только встречаем третий 0, подпоследовательность считаем снова с предыдущего элемента, то есть к  = 2

print(m)

Ответ: 7684

ВАРИАНТ 3

Текстовый файл состоит из символов арабских цифр (0, 1, 2, 3, ….9). Определите максимальное количество идущих подряд символов в прилагаемом файле, среди которых нет символов 1 и 2, стоящих рядом.

Для выполнения этого задания следует написать программу.

Решение и ответ

f = open(’24_var_1-4.txt’)
p = f.readline()
f.close()
m=k=1 #минимальное количество символов в подпоследовательности

for i in range(1,len(p)):
    if not (p[i-1] + p[i] == ’12’ or p[i-1] + p[i] == ’21’): 
        k+=1   
    else:
        m = max (k,m) #запоминаем максимальную длину подпоследовательности
        k = 1

print(m)

Ответ: 532

ВАРИАНТ 4

Текстовый файл состоит из символов арабских цифр (0, 1, 2, 3, ….9). Определите максимальное количество идущих подряд символов в прилагаемом файле, среди которых нет символов 1 и 2, а также 1 и 3, стоящих рядом.

Для выполнения этого задания следует написать программу.

Решение и ответ

f = open(’24_var_1-4.txt’)
p= f.readline()
f.close()
m=k=1 #минимальное количество элементов в подпоследовательности

for i in range(1,len(p)):
     if not (p[i-1] + p[i] == ’12’ or p[i-1] + p[i] == ’21’ or p[i-1] + p[i] == ’13’ or p[i-1] + p[i] == ’31’): 
          k+=1
     else:
        m = max(k,m)
        k = 1

print(m)

Ответ: 339

ВАРИАНТ 5

Текстовый файл состоит не более чем из 10символов X, Y и Z. Определите максимальное количество идущих подряд символов, расположенных  в алфавитном порядке (возможно с повторением символов).

Для выполнения этого задания следует написать программу.

Решение и ответ

f=open(’24_var_5-9.txt’)
p=f.readline()
f.close()
m=k=1

for i in range(1,len(p)):
    if p[i]>= p[i-1]: 
        k+=1
    else:
        m=max(k,m) 
        k=1

print(m)

Ответ: 15

ВАРИАНТ 6

Текстовый файл состоит не более чем из 10символов X, Y и Z. Определите максимальное количество идущих подряд символов, расположенных  в обратном алфавитном порядке (возможно с повторением символов).

Для выполнения этого задания следует написать программу.

Решение и ответ

f=open(’24_var_5-9.txt’)
p=f.readline()
f.close()
m=k=1

for i in range(1,len(p)):
    if p[i]<= p[i-1]: 
        k+=1
    else:
        m=max(k,m) 
        k=1

print(m)

Ответ: 19

ВАРИАНТ 7

Текстовый файл состоит не более чем из 10символов X, Y и Z. Определите максимальное количество идущих подряд символов, среди которых нет символа Z.

Для выполнения этого задания следует написать программу.

Решение и ответ

f=open(’24_var_5-9.txt’)
p=f.readline()
f.close()
m=k=0 #если Z первая, то длина подпоследовательности равна 0

for i in p:
    if i!=’Z’: 
        k+=1
    else:
        m=max(k,m)
        k=0

print(m)

Ответ: 34

ВАРИАНТ 8

Текстовый файл состоит не более чем из 10символов X, Y и Z. Определите максимальное количество идущих подряд символов, среди которых нет символа Z.

Для выполнения этого задания следует написать программу.

 

Решение и ответ

f=open(’24_var_5-9.txt’)

p=f.readline()
f.close()
m=n=0
a=» #подстрока а
for i in p:
    a+=i
    if i == ‘Z’:
        n+=1
    if n==2:
        m=max(m,len(a)-1) # максимальное количество символов из текущего значения и длины а
        a = a[a.find(‘Z’)+1:] # удаляем слева все символы, включая первую Z
        n=1 # осталось символов Z в строке

print(m)

Ответ: 43

ВАРИАНТ 9

Текстовый файл состоит не более чем из 10символов X, Y и Z. Определите максимальное количество идущих подряд символов, среди которых символ Z встречается не более двух раз.

Для выполнения этого задания следует написать программу.

Решение и ответ

f=open(’24_var_5-9.txt’)
p=f.readline()
f.close()
m=n=0
a=» #подстрока а
for i in p:
    a+=i
    if i == ‘Z’:
        n+=1
    if n==3:
        m=max(m,len(a)-1) # максимальное количество символов из текущего значения и длины а
        a = a[a.find(‘Z’)+1:] #  удаляем слева все символы, включая первую Z
        n=2 # осталось символов Z в строке

print(m)

Ответ: 50

ВАРИАНТ 10

Текстовый файл состоит не более чем из 10символов арабских цифр (0, 1, 2, …, 9). Определите максимальное количество идущих подряд одинаковых цифр.

Для выполнения этого задания следует написать программу.

 

Решение и ответ

f=open(’24_var_10-18.txt’)

p=f.readline()
f.close()
m=k=1
for i in range(1,len(p)):
    if p[i-1]== p[i]:
        k+=1
    else:
        m=max(k,m)
        k=1

print(m)

Ответ: 47

ВАРИАНТ 11

Текстовый файл состоит не более чем из 10символов арабских цифр (0, 1, 2, …, 9). Определите максимальное количество идущих подряд цифр, среди  которых каждые две соседние различны .

Для выполнения этого задания следует написать программу.

 

Решение и ответ

f=open(’24_var_10-18.txt’)

p=f.readline()
f.close()
m=k=1

for i in range(1,len(p)):
    if p[i-1]!= p[i]:
        k+=1
    else:
        m=max(k,m)
        k=1

print(m)

Ответ: 120

ВАРИАНТ 12

Текстовый файл состоит не более чем из 10символов арабских цифр (0, 1, 2, …, 9). Определите максимальное количество идущих подряд цифр, расположенных в строго возрастающем порядке.

Для выполнения этого задания следует написать программу.

 

Решение и ответ

f=open(’24_var_10-18.txt’)

p=f.readline()
f.close()
m=k=1

for i in range(1,len(p)):
    if p[i-1] < p[i]:
        k+=1
    else:
        m=max(k,m)
        k=1

print(m)

Ответ: 8

ВАРИАНТ 13

Текстовый файл состоит не более чем из 10символов арабских цифр (0, 1, 2, …, 9). Определите максимальное количество идущих подряд цифр, расположенных в строго убывающем порядке.

Для выполнения этого задания следует написать программу.

 

Решение и ответ

f=open(’24_var_10-18.txt’)

p=f.readline()
f.close()
m=k=1

for i in range(1,len(p)):
    if p[i-1] > p[i]:
        k+=1
    else:
        m=max(k,m)
        k=1

print(m)

Ответ: 7

ВАРИАНТ 14

Текстовый файл состоит не более чем из 10символов арабских цифр (0, 1, 2, …, 9). Определите максимальное количество идущих подряд цифр, расположенных в невозрастающем порядке.

Для выполнения этого задания следует написать программу.

Решение и ответ

f=open(’24_var_10-18.txt’)

p=f.readline()
f.close()
m=k=1

for i in range(1,len(p)):
    if p[i-1] >= p[i]:
        k+=1
    else:
        m=max(k,m)
        k=1

print(m)

Ответ: 47

ВАРИАНТ 15

Текстовый файл состоит не более чем из 10символов арабских цифр (0, 1, 2, …, 9). Определите максимальное количество идущих подряд цифр, расположенных в неубывающем порядке.

Для выполнения этого задания следует написать программу.

Решение и ответ

f=open(’24_var_10-18.txt’)

p=f.readline()
f.close()
m=k=1

for i in range(1,len(p)):
    if p[i-1] <= p[i]:
        k+=1
    else:
        m=max(k,m)
        k=1

print(m)

Ответ: 49

ВАРИАНТ 16

Текстовый файл состоит не более чем из 10символов арабских цифр (0, 1, 2, …, 9). Определите максимальное количество идущих подряд нечетных цифр.

Для выполнения этого задания следует написать программу.

Решение и ответ

f=open(’24_var_10-18.txt’)

p=f.readline()
f.close()
m=k=1
N=[‘1′,’3′,’5′,’7′,’9’]

for i in s:
    if  i in N:
        k+=1
    else:
        m=max(k,m)
        k=1

print(m)

Ответ: 17

ВАРИАНТ 17

Текстовый файл состоит не более чем из 10символов арабских цифр (0, 1, 2, …, 9). Определите максимальное количество идущих подряд четных цифр.

Для выполнения этого задания следует написать программу.

Решение и ответ

f=open(’24_var_10-18.txt’)

p=f.readline()
f.close()
m=k=1
Ch=[‘0′,’2′,’4′,’6′,’8’]

for i in s:
    if  i in Ch:
        k+=1
    else:
        m=max(k,m)
        k=1

print(m)

Ответ: 50

ВАРИАНТ 18

Текстовый файл состоит не более чем из 10символов арабских цифр (0, 1, 2, …, 9). Определите максимальное количество идущих подряд нечетных цифр, расположенных в неубывающем порядке.

Для выполнения этого задания следует написать программу.

Решение и ответ

f=open(’24_var_10-18.txt’)

s=f.readline()
f.close()
m=k=1
N=[‘1′,’3′,’5′,’7′,’9’]

for i in range(1,len(s)):
    if  s[i-1] in N and s[i] in N and s[i-1]<=s[i]:
        k+=1
    else:
        m=max(k,m)
        k=1

print(m)

Ответ: 8

ВАРИАНТ 19

Текстовый файл состоит не более чем из 10символов I, V и X. Сколько раз в файле встречается последовательность цифр, формирующая римскую цифру XV?

Для выполнения этого задания следует написать программу.

Решение и ответ

f=open(’24_var_19-20.txt’)
s = f.read()
f.close()
k=0

for i in range(1, len(s)):
    if  s[i-1] + s[i] ==’XV’:
        k += 1 
print(k)

# или так
s=s.replace(‘XV’,’z’)
print(s.count(‘z’))

# или так
s=s.replace(‘XV’,’z’)
k=0
for i in s:
    if  i==’z’:
        k+=1
print(k)

Ответ: 111177

ВАРИАНТ 20

Текстовый файл состоит не более чем из 10символов I, V и X. Сколько раз в файле встречается последовательность цифр, формирующая римскую цифру XVI?

Для выполнения этого задания следует написать программу.

Решение и ответ

f=open(’24_var_19-20.txt’)
s = f.read()
f.close()
k=0 #см вариант 19, публикую самое короткое решение
s=s.replace(‘XVI’,’z’)
print(s.count(‘z’))

Ответ: 36713

use CHAR_LENGTH, ex

SELECT MAX(CHAR_LENGTH(column1)) maxCol1,
       MAX(CHAR_LENGTH(column2)) maxCol2,
       MAX(CHAR_LENGTH(column3)) maxCol3
FROM tableName
  • SQLFiddle Demo

You can also use Dynamic SQL if you have unknown number of columns. All you need to supply is the name of the database and the name of the table,

SET @db_Name = 'db_2_21a29';
SET @tb_name = 'TABLENAME';
SET @sql = NULL;
SELECT
  GROUP_CONCAT(DISTINCT
    CONCAT('MAX(CHAR_LENGTH(', COLUMN_NAME, ')) AS `', COLUMN_NAME, '`')
  ) INTO @sql
FROM information_schema.columns
WHERE TABLE_NAME = @tb_name AND
      TABLE_SCHEMA = @db_Name;

SET @sql = CONCAT('SELECT ',@sql, 'FROM ', @tb_name);

PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
  • SQLFiddle Demo

Нахождение строки с наибольшим числом символов

Задача:

Узнать и вывести на экран номер строки текстового файла с наибольшим числом символов.

Решим на двух языках. Вот ответ для си шарп:

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

namespace NumberStr
{
    class Program
    {
        static void Main(string[] args)
        {

            int counter = 1;
            int StrLength = 0;
            int numberS = 0;
            string line;

            System.IO.StreamReader file = new System.IO.StreamReader(@"C:Program Files (x86)Notepad++change.log");
            while ((line = file.ReadLine()) != null)
            {
                
                if (line.Length > StrLength) { 
                    StrLength = line.Length;
                    numberS = counter;
                }
                counter++;
            }

            file.Close();
            System.Console.WriteLine("Номер строки с максимальным числом символов: "+numberS);
            System.Console.ReadLine();

        }
    }
}

А это на java:

package up7;

import java.util.*;
import java.io.*;


public class Up7 {
    
static int num = 0;
static int num2 = 0;
static String[] array;

public static void main (String args[]) {
List list = new ArrayList();
try{ Scanner in = new Scanner(new File("C:\Program Files (x86)\Notepad++\change.log"));
while (in.hasNextLine()) 
    list.add(in.nextLine());

array = (String[]) list.toArray(new String[0]);
} 
catch (Exception e) 
{ System.out.println(e); } 

for (int i = 0; i&il;array.length; i++) { 
     
if (num&il;array[i].length()) {
    num = array[i].length();
    num2 = i+1; 
}
} 

System.out.println("Номер строки с максимальным числом символов: "+num2); 
    }
}

Пара комментариев к решениям. В качестве текстового файла берется C:Program Files (x86)Notepad++change.log — лог от нотепада. Сначала построчно его читаем, сохраняем в массив, затем этот массив проходим и ищем наибольшее значение. Потом выводим. Как видите, все просто. Комментарии, вопросы — пишите на up777up@yandex.ru, не забыв предварительно закинуть пару рублей сюда.


Автор этого материала — я — Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML — то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

тегизаметки, задачи, си шарп, java

zvezdato

0 / 0 / 0

Регистрация: 12.09.2022

Сообщений: 2

1

Найти максимально количество символов в строке, идущих подряд

12.09.2022, 14:09. Показов 3505. Ответов 4

Метки ifelse, python, циклы (Все метки)


Студворк — интернет-сервис помощи студентам

Здравствуйте, есть задача:

Нужно найти максимально количество символов в строке, идущих подряд

Python
1
stroka = "aasdffgjfifffffkjwerfjidjtrddrrrrrrrrswwwlgjrhtfuvirrrrrslslgkgbnjjjllwii"

Есть код (не мой), который работает, и я не понимаю, почему

Python
1
2
3
4
5
6
7
8
9
k = 1 
maxx = 0 
for i in range(len(stroka)-1): 
    if stroka[i] == stroka[i+1]:
        k += 1
    if stroka[i] != stroka[i+1]:
        maxx = max(maxx,k)
        k = 1
print(maxx)

Буду благодарна, если вы человекопонятным языком поясните, почему нужно строкой if stroka[i] != stroka[i+1]: останавливать цикл. Разве невыполнение первого if-а автоматически не означает остановку цикла и переход к следующей итерации?



0



2413 / 1455 / 633

Регистрация: 01.11.2021

Сообщений: 2,266

12.09.2022, 14:32

2

Первый if считает подряд идущие одинаковые символы. Как только следующий символ не равен предыдущему, то сработает второй if, который запишет в переменную maxx максимальную длину одинаковых подряд идущих символов вычисленную до и на текущий момент и обнуляет счетчик, т.е. выставляет его на первоначальное значение — 1.



1



iSmokeJC

Am I evil? Yes, I am!

Эксперт PythonЭксперт Java

16118 / 9004 / 2605

Регистрация: 21.10.2017

Сообщений: 20,705

12.09.2022, 14:35

3

Цитата
Сообщение от zvezdato
Посмотреть сообщение

невыполнение первого if-а автоматически не означает остановку цикла и переход к следующей итерации?

С чего бы это?

Кликните здесь для просмотра всего текста

Python
1
print(max(map(lambda x: len(x[0]), re.finditer(r'(.)1+', input()))))



1



zvezdato

0 / 0 / 0

Регистрация: 12.09.2022

Сообщений: 2

12.09.2022, 15:24

 [ТС]

4

Цитата
Сообщение от Alexarh
Посмотреть сообщение

Первый if считает подряд идущие одинаковые символы. Как только следующий символ не равен предыдущему, то сработает второй if, который запишет в переменную maxx максимальную длину одинаковых подряд идущих символов вычисленную до и на текущий момент и обнуляет счетчик, т.е. выставляет его на первоначальное значение — 1.

А разве не так?
Первый if считает подряд идущие символы, то есть, пока True, он плюсует к счетчику единицу. И как только правило, записанное в True, перестаёт работать, счетчик обнуляется.

…но тогда код будет выглядеть так. Вроде работает

Python
1
2
3
4
5
6
7
8
9
k = 1 
maxx = 0 
for i in range(len(stroka)-1): 
    if stroka[i] == stroka[i+1]:
        k += 1
        maxx = max(maxx,k)
    else:
        k = 1
print(maxx)



0



Alexarh

2413 / 1455 / 633

Регистрация: 01.11.2021

Сообщений: 2,266

12.09.2022, 15:51

5

Это почти то же самое. Если первый не сработает if, то сработает второй или наоборот.
Второй if можно заменить на else, ничего не поменяется, проверок меньше будет только.
А вот строку:

Python
1
maxx = max(maxx,k)

лучше перенести в блок else, зачем вычислять каждый раз максимум длины из подстрок, если подсчет одинаковых символов еще не закончился. Вот когда закончили их считать, встретился другой символ, тогда и берем максимальную длину.



1



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

12.09.2022, 15:51

5

Текстовый файл содержит только заглавные буквы латинского алфавита
(ABC. . .Z). Определите максимальное количество идущих подряд символов,
среди которых не более одной буквы A. Не понимаю в чём я ошибся, возможно вообще по другому надо было решать?

f = open("24.txt")
st = f.read()
f.close()
cur_len = 0
max_len = 0
for x in st:
    if x == "A":
        cur_len += 1
        if cur_len > max_len:
            max_len = cur_len
    else:
        cur_len = 0
print(max_len)

задан 17 ноя 2021 в 8:10

Rendivy's user avatar

Так, в качестве альтернативного алгоритма…
Разбиваем строку на подстроки по букве «A» и сразу вычисляем их длины. Далее в цикле складываем длины соседних подстрок и берём из этих сумм максимальную. Ну и прибавляем единицу так как сама буква «А» не была включена ни в одну из подстрок. Для исходной строки без букв «А» делается отдельное вычисление (просто берётся длина всей строки).

with open("24.txt") as f:
    s = f.read().strip()

seq = list(map(len, s.split("A")))
result = max(map(sum, zip(seq, seq[1:])))+1 if len(seq) > 1 else len(s)

print(result)

ответ дан 17 ноя 2021 в 8:45

GrAnd's user avatar

GrAndGrAnd

13.4k1 золотой знак8 серебряных знаков23 бронзовых знака

for x in st:
    if x == "A":
        cur_len += 1
        if cur_len > max_len:
            max_len = cur_len
    else:
        cur_len = 0

вы подсчитываете длину последовательности только, когда у вас буква «А», а в задаче сказано:

Определите максимальное количество идущих подряд символов, среди которых не более одной буквы A.

Так у вас в задаче ошибка или в коде?

Если судить по заданию, то

  1. минимум надо if x != "A": сделать
  2. надо учесть ситуацию вида 'BBABBBAAA' в которой надо выделить 'BBABBB'

ответ дан 17 ноя 2021 в 8:15

Zhihar's user avatar

ZhiharZhihar

36.9k4 золотых знака25 серебряных знаков67 бронзовых знаков

3

Понравилась статья? Поделить с друзьями:
  • Как найти песню если не находит shazam
  • Как составить бюджет стартапа
  • Как найти угол зная его синус калькулятор
  • Как найти отклонение в математике
  • Как найти соединительную коробку в стене