没有明白, 请求一下上游能返回你需要的 user_id 的接口? 比如你要编辑用户, 是不是需要登录, 登录会不会返回 user_id 的字段?
搞起,搞起~~
尝试写一下, 思路:编历字符串, 把其中数字、字母往栈里面丢, 不用管'['。 匹配到']', 取出栈中字符直到遇到数字,扩展后 (即数字 * 字母) 再放回栈。这样遍历完成后, 栈中放的就是所有扩展后的字母串, 取出来拼接好。
public class UnzipWords {
public static String unZipWords(String words){
/**
* 思路:编历字符串, 把其中数字、字母往栈里面丢, 不用管'['。 匹配到']', 取出栈中字符直到遇到数字,扩展后(即数字 * 字母)再放回栈。
* 这样遍历完成后, 栈中放的就是所有扩展后的字母串, 取出来拼接好。
*
*/
Deque<String> deque = new LinkedList<>();
for(char w : words.toCharArray()){
if(w==']'){
StringBuilder de_word = new StringBuilder();
while(!deque.isEmpty()){
String word = deque.pop();
if(word.length()==1 && Character.isDigit(word.charAt(0))){
int f = Integer.valueOf(word);
StringBuilder temp = new StringBuilder();
for(int i=1;i<=f;i++){
temp.append(de_word);
}
deque.push(temp.toString());
break;
}else{
de_word.insert(0,word);
}
}
}else if(w!='['){
deque.push(w+"");
}
}
StringBuilder sb = new StringBuilder();
while(!deque.isEmpty()){
sb.insert(0,deque.pop());
}
System.out.println(words + " -> " +sb.toString());
return sb.toString();
}
public static void main(String args[]){
unZipWords("3[k]4[x]");
unZipWords("2[k3[am]]");
unZipWords("x5[a4[c]5[d]m]");
unZipWords("3[K]");
}
}
示例:
3[k]4[x] -> kkkxxxx
2[k3[am]] -> kamamamkamamam
x5[a4[c]5[d]m] -> xaccccdddddmaccccdddddmaccccdddddmaccccdddddmaccccdddddm
3[K] -> KKK
可以可以
这个可以转换成算术:
3[a] -> aaa 理解成 3*'a'
3[k] 2[am] -> kkkamam 理解成 3*'k' + 2*'am'
2[k3[am]] -> kamamamkamamam 理解成 2*('k'+3*'am')
解算术, 一般就是匹配, 入栈出栈。
如果把这个题目反过来, 看着难度会大增。
你说的 idea 插件, 我基于已有 httprunner 实现了:
https://plugins.jetbrains.com/plugin/15821-httprunner-editor
今天拉升了
面的哪个职位?
Httprunner 是没人维护了吗?
httprunner 2 里面看是通过正则表达式来进行匹配的, 你可以找到那个正则表达式, 改一下就 OK 了