An avid hiker keeps meticulous records of their hikes. During the last hike that took exactly steps, for every step, it was noted if it was an uphill, U, or a downhill, step. Hikes always start and end at sea level, and each step up or down represents a unit change in altitude. We define the following terms:
1.A mountain is a sequence of consecutive steps above sea level, starting with a step up from sea level and ending with a step down to sea level.
2.A valley is a sequence of consecutive steps below sea level, starting with a step down from sea level and ending with a step up to sea level.
Given the sequence of up and down steps during a hike, find and print the number of valleys walked through.
Example:
Input: n=8, s="UDDDUDUU"
Output: 1
Approach
Java
public class CountingValleys {public static void main(String[] args) {int n = 8;String s = "UDDDUDUU";System.out.println(countingValleys(n, s));}static int countingValleys(int steps, String path) {int no = 0, i = 0, j = 0;for (i = 0; i < steps; i++) {if (path.charAt(i) == 'U') {j = j + 1;if (j == 0)no++;} else {j = j - 1;}}return no;}}
C++
#include <iostream>using namespace std;int countingValleys(int steps, string path){int no = 0, i = 0, j = 0;for (i = 0; i < steps; i++){if (path[i] == 'U'){j = j + 1;if (j == 0)no++;}else{j = j - 1;}}return no;}int main(){long int n = 8;string s = "UDDDUDUU";cout << countingValleys(n, s);return 0;}
No comments:
Post a Comment