📌  相关文章
📜  字符串数字中偶数子串的数量

📅  最后修改于: 2022-05-13 01:57:07.375000             🧑  作者: Mango

字符串数字中偶数子串的数量

给定字符串数字 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++ program to count number of substring
// which are even integer in a string of digits.
#include
using namespace std;
 
// Return the even number substrings.
int evenNumSubstring(char str[])
{
    int len = strlen(str);
    int count = 0;
 
    for (int i = 0; i < len; i++)
    {
        int temp = str[i] - '0';
 
        // If current digit is even, add
        // count of substrings ending with
        // it. The count is (i+1)
        if (temp % 2 == 0)
            count += (i + 1);
    }
 
    return count;
}
 
// Driven Program
int main()
{
    char str[] = "1234";
    cout << evenNumSubstring(str) << endl;
    return 0;
}


Java
// Java program to count number of
// substring which are even integer
// in a string of digits.
public class GFG {
     
    // Return the even number substrings.
    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';
     
            // If current digit is even, add
            // count of substrings ending with
            // it. The count is (i+1)
            if (temp % 2 == 0)
                count += (i + 1);
        }
     
        return count;
    }
     
    public static void main(String args[])
    {
         
        String str= "1234";
         
        System.out.println(evenNumSubstring(str));
    }
}
 
// This code is contributed by Sam007.


Python3
# Python 3 program to count number of substring
# which are even integer in a string of digits.
 
 
# Return the even number substrings.
def evenNumSubstring(str):
    length = len(str)
    count = 0
 
    for i in range(0,length,1):
        temp = ord(str[i]) - ord('0')
 
        # If current digit is even, add
        # count of substrings ending with
        # it. The count is (i+1)
        if (temp % 2 == 0):
            count += (i + 1)
 
    return count
 
# Driven Program
if __name__ == '__main__':
    str = ['1','2','3','4']
    print(evenNumSubstring(str))
 
# This code is contributed by
# Surendra_Gangwar


C#
// C# program to count number of
// substring which are even integer
// in a string of digits.
using System;
 
public class GFG {
     
    // Return the even number substrings.
    static int evenNumSubstring(string str)
    {
        int len = str.Length;
        int count = 0;
     
        for (int i = 0; i < len; i++)
        {
            int temp = str[i] - '0';
     
            // If current digit is even,
            // add count of substrings
            // ending with it. The count
            // is (i+1)
            if (temp % 2 == 0)
                count += (i + 1);
        }
     
        return count;
    }
     
    // Driver code
    public static void Main()
    {
        string str= "1234";
     
        Console.Write(
            evenNumSubstring(str));
    }
}
 
// This code is contributed by Sam007.


PHP


Javascript


输出:

6

时间复杂度: O(字符串长度)。