Рубрики

Количество четных подстрок в строке цифр

Дана строка цифр 0 — 9. Задача состоит в подсчете количества подстрок, которые при преобразовании в целое число образуют четное число.

Примеры :

Input : str = "1234".
Output : 6
"2", "4", "12", "34", "234", "1234" 
are 6 substring which are even.

Input : str = "154".
Output : 3

Input : str = "15".
Output : 0

Чтобы число было четным, подстрока должна заканчиваться четной цифрой. Мы находим все четные цифры в строке и для каждой четной цифры подсчитываем количество подстрок, заканчивающихся на ней. Теперь обратите внимание, что число подстрок будет индексом этой четной цифры плюс один.

C ++

// C ++ программа для подсчета количества подстрок
// которые являются целыми числами в строке цифр.
#include<bits/stdc++.h>

using namespace std;

  
// Возвращаем четные подстроки числа.

int evenNumSubstring(char str[])

{

    int len = strlen(str);

    int count = 0;

  

    for (int i = 0; i < len; i++)

    {

        int temp = str[i] - '0';

  

        // Если текущая цифра четная, добавить

        // количество подстрок, заканчивающихся на

        // Это. Количество (я + 1)

        if (temp % 2 == 0)

            count += (i + 1);

    }

  

    return count;

}

  
// Управляемая программа

int main()

{

    char str[] = "1234";

    cout << evenNumSubstring(str) << endl;

    return 0;

}

Джава

// Java-программа для подсчета количества
// подстрока, которая является даже целым числом
// в строке цифр.

public class GFG {

      

    // Возвращаем четные подстроки числа.

    static int evenNumSubstring(String str)

    {

        int len = str.length();

        int count = 0;

      

        for (int i = 0; i < len; i++)

        {

            int temp = str.charAt(i) - '0';

      

            // Если текущая цифра четная, добавить

            // количество подстрок, заканчивающихся на

            // Это. Количество (я + 1)

            if (temp % 2 == 0)

                count += (i + 1);

        }

      

        return count;

    }

      

    public static void main(String args[])

    {

          

        String str= "1234";

          

        System.out.println(evenNumSubstring(str));

    }

}

  
// Этот код предоставлен Sam007.

python3

# Python 3 программа для подсчета количества подстрок
# которые являются целыми числами в строке цифр.

  

  
# Вернуть четные подстроки.

def evenNumSubstring(str):

    length = len(str)

    count = 0

  

    for i in range(0,length,1):

        temp = ord(str[i]) - ord('0')

  

        # Если текущая цифра четная, добавить

        # количество подстрок, заканчивающихся на

        # Это. Количество (я + 1)

        if (temp % 2 == 0):

            count += (i + 1)

  

    return count

  
# Управляемая программа

if __name__ == '__main__':

    str = ['1','2','3','4']

    print(evenNumSubstring(str))

  
# Этот код предоставлен
# Surendra_Gangwar

C #

// C # программа для подсчета количества
// подстрока, которая является даже целым числом
// в строке цифр.

using System;

  

public class GFG {

      

    // Возвращаем четные подстроки числа.

    static int evenNumSubstring(string str)

    {

        int len = str.Length;

        int count = 0;

      

        for (int i = 0; i < len; i++)

        {

            int temp = str[i] - '0';

      

            // Если текущая цифра четная,

            // добавляем количество подстрок

            // заканчивая этим. Счет

            // есть (i + 1)

            if (temp % 2 == 0)

                count += (i + 1);

        }

      

        return count;

    }

      

    // Код драйвера

    public static void Main()

    {

        string str= "1234";

      

        Console.Write(

            evenNumSubstring(str));

    }

}

  
// Этот код предоставлен Sam007.

PHP

<?php
// PHP программа для подсчета числа
// подстроки, которая является четной
// целое число в строке цифр.

  
// Возвращаем четные подстроки числа.

function evenNumSubstring($str)

{

    $len = strlen($str);

    $count = 0;

  

    for ($i = 0; $i < $len; $i++)

    {

        $temp = $str[$i] - '0';

  

        // Если текущая цифра четная, добавить

        // количество подстрок, заканчивающихся на

        // Это. Количество (я + 1)

        if ($temp % 2 == 0)

            $count += ($i + 1);

    }

  

    return $count;

}

  
// Код драйвера

$str = "1234";

echo evenNumSubstring($str),"\n" ;

  
// Этот код предоставлен jit_t
?>

Выход:

6

Сложность времени: O (длина строки).

Эта статья предоставлена Anuj Chauhan . Если вы как GeeksforGeeks и хотели бы внести свой вклад, вы также можете написать статью с помощью contribute.geeksforgeeks.org или по почте статьи contribute@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.

Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

Рекомендуемые посты:

Количество четных подстрок в строке цифр

0.00 (0%) 0 votes