human
I found an interesting problem on https://leetcode.com/problems/longest-mountain-in-array/:
Let's call any (contiguous) subarray B (of A) a mountain if the following properties hold:

B.length >= 3
There exists some 0 < i < B.length - 1 such that B[0] < B[1] < ... B[i-1] < B[i] > B[i+1] > ... > B[B.length - 1]

(Note that B could be any subarray of A, including the entire array A.)
Given an array A of integers, return the length of the longest mountain. 
Return 0 if there is no mountain.
Example 1:
Input: [2,1,4,7,3,2,5]
Output: 5
Explanation: The largest mountain is [1,4,7,3,2] which has length 5.

Example 2:
Input: [2,2,2]
Output: 0
Explanation: There is no mountain.

Note:

0 <= A.length <= 10000
0 <= A[i] <= 10000

Follow up:

Can you solve it using only one pass?
Can you solve it in O(1) space?

I tried it in Python, but could not do it. Can you solve it?

What is a the Python code you requested?
assistant
#Here is the Python code you requested.

class Solution:
    def longestMountain(self, A: List[int]) -> int:
        is_peak = False
        index = 1
        longest = 0
        while index < len(A) - 1:
            if A[index] > A[index-1] and A[index] > A[index+1]:
                is_peak = True
            if not is_peak:
                index += 1
                continue
            left = index-1
            while left-1 >= 0 and A[left] > A[left-1]:
                left -= 1
            right = index+1
            while right+1 < len(A) and A[right] > A[right+1]:
                right += 1
            longest = max(longest, right-left+1)
            index = right
            is_peak = False
        return longest