Đếm thung lũng (Counting Valleys)
Gary là một người leo núi hăng hái. Anh ta theo dõi tỉ mỉ các bước đi của mình, chú ý đến các chi tiết nhỏ như địa hình. Trong lần đi bộ cuối cùng của mình, anh ấy đã thực hiện chính xác n các bước. Đối với mỗi bước anh ta thực hiện, anh ta lưu ý nếu đó là một khó khăn, U hoặc xuống dốc, D bước. Tăng vọt của Gary bắt đầu và kết thúc ở mực nước biển và mỗi bước lên hoặc xuống đại diện cho một 1 thay đổi đơn vị độ cao. Chúng tôi xác định các điều khoản sau đây:
Một ngọn núi là một chuỗi các bước liên tiếp trên mực nước biển, bắt đầu bằng một bước lên từ mực nước biển và kết thúc bằng một bước xuống mực nước biển.
Một thung lũng là một chuỗi các bước liên tiếp dưới mực nước biển, bắt đầu bằng một bước xuống từ mực nước biển và kết thúc bằng một bước lên mực nước biển.
Đưa ra chuỗi bước lên và xuống của Gary trong lần đi bộ cuối cùng của anh ấy, tìm và in số thung lũng anh ấy đi qua.
Ví dụ: nếu đường dẫn của Gary là
đầu tiên anh ta vào một thung lũng 2 Đơn vị sâu. Sau đó, anh ta trèo lên một đơn vị núi cao. Cuối cùng, anh trở về mực nước biển và kết thúc chuyến đi bộ của mình.
Mô tả chức năng
Hoàn thành chức năng CountValleys trong trình chỉnh sửa bên dưới. Nó phải trả về một số nguyên biểu thị số lượng thung lũng Gary đi qua.
CountValleys có (các) tham số sau:
n: số bước Gary thực hiện
s: một chuỗi mô tả con đường của anh ấy
Định dạng đầu vào
Dòng đầu tiên chứa một số nguyên n số lượng các bước trong tăng của Gary.
Dòng thứ hai chứa một chuỗi s của n nhân vật mô tả con đường của mình.
Những ràng buộc
Một ngọn núi là một chuỗi các bước liên tiếp trên mực nước biển, bắt đầu bằng một bước lên từ mực nước biển và kết thúc bằng một bước xuống mực nước biển.
Một thung lũng là một chuỗi các bước liên tiếp dưới mực nước biển, bắt đầu bằng một bước xuống từ mực nước biển và kết thúc bằng một bước lên mực nước biển.
Đưa ra chuỗi bước lên và xuống của Gary trong lần đi bộ cuối cùng của anh ấy, tìm và in số thung lũng anh ấy đi qua.
Ví dụ: nếu đường dẫn của Gary là
đầu tiên anh ta vào một thung lũng 2 Đơn vị sâu. Sau đó, anh ta trèo lên một đơn vị núi cao. Cuối cùng, anh trở về mực nước biển và kết thúc chuyến đi bộ của mình.
Mô tả chức năng
Hoàn thành chức năng CountValleys trong trình chỉnh sửa bên dưới. Nó phải trả về một số nguyên biểu thị số lượng thung lũng Gary đi qua.
CountValleys có (các) tham số sau:
n: số bước Gary thực hiện
s: một chuỗi mô tả con đường của anh ấy
Định dạng đầu vào
Dòng đầu tiên chứa một số nguyên n số lượng các bước trong tăng của Gary.
Dòng thứ hai chứa một chuỗi s của n nhân vật mô tả con đường của mình.
Những ràng buộc
Định dạng đầu ra
In một số nguyên duy nhất biểu thị số lượng thung lũng Gary đi qua trong chuyến đi bộ của mình
Đầu vào mẫu
8
UDDDUDUU
Đầu ra mẫu
1
Giải trình
Nếu chúng ta biểu thị _ là mực nước biển, một bước lên là / và bước xuống dưới dạng \, việc đi bộ của Gary có thể được rút ra là:
_/\ _
\ /
\/\/
Anh ta đi vào và để lại một thung lũng.
php
<?php
// Complete the countingValleys function below.
function countingValleys($n, $s) {
$startpos = 0;
$posarr = [];
$valleycnt = 0;
for($i = 0; $i < $n ; $i++) {
if($s[$i] == 'D') {
$startpos --;
$posarr[$i] = $startpos;
} else {
$startpos ++;
$posarr[$i] = $startpos;
}
}
for($i = 0; $i < $n ; $i++) {
if($posarr[$i] == 0 && $posarr[$i-1] < 0)
$valleycnt++;
}
return $valleycnt;
}
$fptr = fopen(getenv("OUTPUT_PATH"), "w");
$stdin = fopen("php://stdin", "r");
fscanf($stdin, "%d\n", $n);
$s = '';
fscanf($stdin, "%[^\n]", $s);
$result = countingValleys($n, $s);
fwrite($fptr, $result . "\n");
fclose($stdin);
fclose($fptr);
Comments
Post a Comment