public static boolean isBalanced(String s) {
Map<Character, Character> openClosePair = new HashMap<Character, Character>();
openClosePair.put('(', ')');
openClosePair.put('{', '}');
openClosePair.put('[', ']');
Stack<Character> stack = new Stack<Character>();
for (int i = 0; i < s.length(); i++) {
if (openClosePair.containsKey(s.charAt(i))) {
stack.push(s.charAt(i));
} else if ( openClosePair.containsValue(s.charAt(i))) {
if (stack.isEmpty())
return false;
if (openClosePair.get(stack.pop()) != s.charAt(i))
return false;
}
// ignore all other characters
}
return stack.isEmpty();
}
root@i5-cpu:~/work_area/php# tree d1
d1
├── d2
│ ├── f2_1.js
│ └── f2_2.js
├── f1_1.js
└── f1_2.js
1 directory, 4 files
root@i5-cpu:~/work_area/php# find . -name "\*.js" | xargs tar -cvf tar.tar --transform='s,.*/,,'
./d1/d2/f2_1.js
./d1/d2/f2_2.js
./d1/f1_1.js
./d1/f1_2.js
root@i5-cpu:~/work_area/php# tar -tvf tar.tar
-rw-rw-rw- root/root 0 2019-01-17 01:12 f2_1.js
-rw-rw-rw- root/root 0 2019-01-17 01:12 f2_2.js
-rw-rw-rw- root/root 0 2019-01-17 01:11 f1_1.js
-rw-rw-rw- root/root 0 2019-01-17 01:11 f1_2.js
Проверить эту страницу https://www.gnu.org/software/tar/manual/html_section/tar_51.html Примеры с - преобразование [112 ]