/* package whatever; // don't place package name! */
import java.util.* ;
import java.lang.* ;
import java.io.* ;
/**
есть сжатая строка вида "h3jv2sf" например, нужно её распаковать в строку вида "hhhjvvsf", или же например строка "fe2rt2w", её нужно распаковать в строку вида "feerttt", то есть число может быть любым больше 1, оно показывает число вхождений предыдущего символа;
подскажите как это сделать, тут нужно использовать регулярные выражения? хотя бы алгоритм подскажите
**/
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
String [ ] splitByRegex
= example.
split ( "" ) ;
for ( int b = 0 ; b< splitByRegex.length ; b++ ) {
try {
int a
= Integer .
parseInt ( splitByRegex
[ b
] ) ; try {
splitByRegex
[ b
] += "" + Integer .
parseInt ( splitByRegex
[ b
+ 1 ] ) ; splitByRegex[ b+ 1 ] = "" ;
a
= Integer .
parseInt ( splitByRegex
[ b
] ) ;
splitByRegex[ b] = "" ;
for ( int i= 0 ; i< a- 1 ; i++ ) {
splitByRegex[ b] += splitByRegex[ b- 1 ] ;
}
}
example = "" ;
for ( int b = 0 ; b< splitByRegex.length ; b++ ) {
example += splitByRegex[ b] ;
}
say( example) ;
}
static < T
> void say
( T smth
) { System .
out .
println ( smth
) ; } }
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKioK0LXRgdGC0Ywg0YHQttCw0YLQsNGPINGB0YLRgNC+0LrQsCDQstC40LTQsCAiaDNqdjJzZiIg0L3QsNC/0YDQuNC80LXRgCwg0L3Rg9C20L3QviDQtdGRINGA0LDRgdC/0LDQutC+0LLQsNGC0Ywg0LIg0YHRgtGA0L7QutGDINCy0LjQtNCwICJoaGhqdnZzZiIsINC40LvQuCDQttC1INC90LDQv9GA0LjQvNC10YAg0YHRgtGA0L7QutCwICJmZTJydDJ3Iiwg0LXRkSDQvdGD0LbQvdC+INGA0LDRgdC/0LDQutC+0LLQsNGC0Ywg0LIg0YHRgtGA0L7QutGDINCy0LjQtNCwICJmZWVydHR0Iiwg0YLQviDQtdGB0YLRjCDRh9C40YHQu9C+INC80L7QttC10YIg0LHRi9GC0Ywg0LvRjtCx0YvQvCDQsdC+0LvRjNGI0LUgMSwg0L7QvdC+INC/0L7QutCw0LfRi9Cy0LDQtdGCINGH0LjRgdC70L4g0LLRhdC+0LbQtNC10L3QuNC5INC/0YDQtdC00YvQtNGD0YnQtdCz0L4g0YHQuNC80LLQvtC70LA7CtC/0L7QtNGB0LrQsNC20LjRgtC1INC60LDQuiDRjdGC0L4g0YHQtNC10LvQsNGC0YwsINGC0YPRgiDQvdGD0LbQvdC+INC40YHQv9C+0LvRjNC30L7QstCw0YLRjCDRgNC10LPRg9C70Y/RgNC90YvQtSDQstGL0YDQsNC20LXQvdC40Y8/INGF0L7RgtGPINCx0Ysg0LDQu9Cz0L7RgNC40YLQvCDQv9C+0LTRgdC60LDQttC40YLQtQoqKi8JCi8qIE5hbWUgb2YgdGhlIGNsYXNzIGhhcyB0byBiZSAiTWFpbiIgb25seSBpZiB0aGUgY2xhc3MgaXMgcHVibGljLiAqLwpjbGFzcyBJZGVvbmUKewoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uCgl7CgkJCgkJU3RyaW5nIGV4YW1wbGUgPSAiIHQxNXY1IjsKCQlTdHJpbmdbXSBzcGxpdEJ5UmVnZXggPSBleGFtcGxlLnNwbGl0KCIiKTsKCQkKCQlmb3IoaW50IGIgPSAwO2I8c3BsaXRCeVJlZ2V4Lmxlbmd0aDtiKyspewoJCQl0cnl7CgkJCQlpbnQgYSA9IEludGVnZXIucGFyc2VJbnQoc3BsaXRCeVJlZ2V4W2JdKTsKCQkJCXRyeXsKCQkJCQlzcGxpdEJ5UmVnZXhbYl0gKz0gIiIrSW50ZWdlci5wYXJzZUludChzcGxpdEJ5UmVnZXhbYisxXSk7CgkJCQkJc3BsaXRCeVJlZ2V4W2IrMV0gPSAiIjsKCQkJCQlhID0gSW50ZWdlci5wYXJzZUludChzcGxpdEJ5UmVnZXhbYl0pOwoJCQkJCQoJCQkJfWNhdGNoKEV4Y2VwdGlvbiBlKXtzYXkoZS5nZXRNZXNzYWdlKCkpO30KCQkJCQoJCQkJCgkJCQlzcGxpdEJ5UmVnZXhbYl0gPSIiOwoJCQkJZm9yKGludCBpPTA7aTxhLTE7aSsrKXsKCQkJCQlzcGxpdEJ5UmVnZXhbYl0gKz0gc3BsaXRCeVJlZ2V4W2ItMV07CgkJCQl9CgkJCX1jYXRjaChFeGNlcHRpb24gZSl7Y29udGludWU7fQoJCQl9CgkJCgkJZXhhbXBsZSA9IiI7CgkJZm9yKGludCBiID0gMDtiPHNwbGl0QnlSZWdleC5sZW5ndGg7YisrKXsKCQkJZXhhbXBsZSArPSBzcGxpdEJ5UmVnZXhbYl07CgkJfQoJCXNheShleGFtcGxlKTsKCX0KCQoJc3RhdGljIDxUPiB2b2lkIHNheShUIHNtdGgpe1N5c3RlbS5vdXQucHJpbnRsbihzbXRoKTt9Cn0=