表示为字符串的树中第 k 级节点的乘积
原文:https://www . geesforgeks . org/product-nodes-k-th-level-tree-presented-string/
给定一个整数“K”和一个字符串格式的二叉树。树的每个节点的值都在 0 到 9 之间。我们需要从根开始寻找 K 级元素的乘积。根在 0 级。 注:树以下列形式给出:(节点值(左子树)(右子树)) 例:
Input : tree = "(0(5(6()())(4()(9()())))(7(1()())(3()())))"
k = 2
Output : 72
Its tree representation is shown below
Elements at level k = 2 are 6, 4, 1, 3
sum of the digits of these elements = 6 * 4 * 1 * 3 = 72
Input : tree = "(8(3(2()())(6(5()())()))(5(10()())(7(13()())())))"
k = 3
Output : 15
Elements at level k = 3 are 5, 1 and 3
sum of digits of these elements = 5 * 1 * 3 = 15
进场:
1\. Input 'tree' in string format and level k
2\. Initialize level = -1 and product = 1
3\. for each character 'ch' in 'tree'
3.1 if ch == '(' then
--> level++
3.2 else if ch == ')' then
--> level--
3.3 else
if level == k then
product = product * (ch-'0')
4\. Print product
C++
// C++ implementation to find product of
// digits of elements at k-th level
#include <bits/stdc++.h>
using namespace std;
// Function to find product of digits
// of elements at k-th level
int productAtKthLevel(string tree, int k)
{
int level = -1;
int product = 1; // Initialize result
int n = tree.length();
for (int i = 0; i < n; i++) {
// increasing level number
if (tree[i] == '(')
level++;
// decreasing level number
else if (tree[i] == ')')
level--;
else {
// check if current level is
// the desired level or not
if (level == k)
product *= (tree[i] - '0');
}
}
// required product
return product;
}
// Driver program
int main()
{
string tree = "(0(5(6()())(4()(9()())))(7(1()())(3()())))";
int k = 2;
cout << productAtKthLevel(tree, k);
return 0;
}
Java 语言(一种计算机语言,尤用于创建网站)
// Java implementation to find product of
// digits of elements at k-th level
class GFG
{
// Function to find product of digits
// of elements at k-th level
static int productAtKthLevel(String tree, int k)
{
int level = -1;
// Initialize result
int product = 1;
int n = tree.length();
for (int i = 0; i < n; i++)
{
// increasing level number
if (tree.charAt(i) == '(')
level++;
// decreasing level number
else if (tree.charAt(i) == ')')
level--;
else
{
// check if current level is
// the desired level or not
if (level == k)
product *= (tree.charAt(i) - '0');
}
}
// required product
return product;
}
// Driver program
public static void main(String[] args)
{
String tree = "(0(5(6()())(4()(9()())))(7(1()())(3()())))";
int k = 2;
System.out.println(productAtKthLevel(tree, k));
}
}
// This code is contributed
// by Smitha Dinesh Semwal.
Python 3
# Python 3 implementation
# to find product of
# digits of elements
# at k-th level
# Function to find
# product of digits
# of elements at
# k-th level
def productAtKthLevel(tree, k):
level = -1
# Initialize result
product = 1
n = len(tree)
for i in range(0, n):
# increasing level number
if (tree[i] == '('):
level+=1
# decreasing level number
elif (tree[i] == ')'):
level-=1
else:
# check if current level is
# the desired level or not
if (level == k):
product *= (int(tree[i]) - int('0'))
# required product
return product
# Driver program
tree = "(0(5(6()())(4()(9()())))(7(1()())(3()())))"
k = 2
print(productAtKthLevel(tree, k))
# This code is contributed by
# Smitha Dinesh Semwal
C
// C# implementation to find
// product of digits of
// elements at k-th level
using System;
class GFG
{
// Function to find product
// of digits of elements
// at k-th level
static int productAtKthLevel(string tree,
int k)
{
int level = -1;
// Initialize result
int product = 1;
int n = tree.Length;
for (int i = 0; i < n; i++)
{
// increasing
// level number
if (tree[i] == '(')
level++;
// decreasing
// level number
else if (tree[i] == ')')
level--;
else
{
// check if current level is
// the desired level or not
if (level == k)
product *= (tree[i] - '0');
}
}
// required product
return product;
}
// Driver Code
static void Main()
{
string tree = "(0(5(6()())(4()(9()())))(7(1()())(3()())))";
int k = 2;
Console.WriteLine(productAtKthLevel(tree, k));
}
}
// This code is contributed by Sam007
服务器端编程语言(Professional Hypertext Preprocessor 的缩写)
<?php
// php implementation to find product of
// digits of elements at k-th level
// Function to find product of digits
// of elements at k-th level
function productAtKthLevel($tree, $k)
{
$level = -1;
$product = 1; // Initialize result
$n = strlen($tree);
for ($i = 0; $i < $n; $i++)
{
// increasing level number
if ($tree[$i] == '(')
$level++;
// decreasing level number
else if ($tree[$i] == ')')
$level--;
else
{
// check if current level is
// the desired level or not
if ($level == $k)
$product *= (ord($tree[$i]) -
ord('0'));
}
}
// required product
return $product;
}
// Driver Code
$tree = "(0(5(6()())(4()(9()())))(7(1()())(3()())))";
$k = 2;
echo productAtKthLevel($tree, $k);
//This code is contributed by mits
?>
java 描述语言
<script>
// Javascript implementation to find
// product of digits of
// elements at k-th level
// Function to find product
// of digits of elements
// at k-th level
function productAtKthLevel(tree, k)
{
let level = -1;
// Initialize result
let product = 1;
let n = tree.length;
for (let i = 0; i < n; i++)
{
// increasing
// level number
if (tree[i] == '(')
level++;
// decreasing
// level number
else if (tree[i] == ')')
level--;
else
{
// check if current level is
// the desired level or not
if (level == k)
product *= (tree[i].charCodeAt() - '0'.charCodeAt());
}
}
// required product
return product;
}
let tree = "(0(5(6()())(4()(9()())))(7(1()())(3()())))";
let k = 2;
document.write(productAtKthLevel(tree, k));
</script>
输出:
72
时间复杂度: O(n)
https://youtu.be/Y
-耶尔马 XlSbQ?list = plqm 7 alhxfyshcxd 7r 1j0ky 9 ZG _ gbb 1 dbk〖t0〗]
版权属于:月萌API www.moonapi.com,转载请注明出处