<p>给你下标从 <strong>0</strong> 开始、长度为 <code>n</code> 的字符串 <code>pattern</code> ,它包含两种字符,<code>'I'</code> 表示 <strong>上升</strong> ,<code>'D'</code> 表示 <strong>下降</strong> 。</p> <p>你需要构造一个下标从 <strong>0</strong> 开始长度为 <code>n + 1</code> 的字符串,且它要满足以下条件:</p> <ul> <li><code>num</code> 包含数字 <code>'1'</code> 到 <code>'9'</code> ,其中每个数字 <strong>至多</strong> 使用一次。</li> <li>如果 <code>pattern[i] == 'I'</code> ,那么 <code>num[i] < num[i + 1]</code> 。</li> <li>如果 <code>pattern[i] == 'D'</code> ,那么 <code>num[i] > num[i + 1]</code> 。</li> </ul> <p>请你返回满足上述条件字典序 <strong>最小</strong> 的字符串<em> </em><code>num</code>。</p> <p> </p> <p><strong>示例 1:</strong></p> <pre> <b>输入:</b>pattern = "IIIDIDDD" <b>输出:</b>"123549876" <strong>解释: </strong>下标 0 ,1 ,2 和 4 处,我们需要使 num[i] < num[i+1] 。 下标 3 ,5 ,6 和 7 处,我们需要使 num[i] > num[i+1] 。 一些可能的 num 的值为 "245639871" ,"135749862" 和 "123849765" 。 "123549876" 是满足条件最小的数字。 注意,"123414321" 不是可行解因为数字 '1' 使用次数超过 1 次。</pre> <p><strong>示例 2:</strong></p> <pre> <b>输入:</b>pattern = "DDD" <b>输出:</b>"4321" <strong>解释:</strong> 一些可能的 num 的值为 "9876" ,"7321" 和 "8742" 。 "4321" 是满足条件最小的数字。 </pre> <p> </p> <p><strong>提示:</strong></p> <ul> <li><code>1 <= pattern.length <= 8</code></li> <li><code>pattern</code> 只包含字符 <code>'I'</code> 和 <code>'D'</code> 。</li> </ul>