PKU 3438 look and say
2010-08-17 17:21
351 查看
Look and Say
Description
The
look and say sequence is defined as follows. Start with any string of
digits as the first element in the sequence. Each subsequent element is
defined from the previous one by "verbally" describing the previous
element. For example, the string 122344111 can be described as "one 1,
two 2's, one 3, two 4's, three 1's". Therefore, the element that comes
after 122344111 in the sequence is 1122132431. Similarly, the string 101
comes after 1111111111. Notice that it is generally not possible to
uniquely identify the previous element of a particular element. For
example, a string of 112213243 1's also yields 1122132431 as the next
element.
Input
The
input consists of a number of cases. The first line gives the number of
cases to follow. Each case consists of a line of up to 1000 digits.
Output
For each test case, print the string that follows the given string.
Sample Input
Sample Output
Source
Rocky Mountain 2007
Time Limit: 5000MS | Memory Limit: 65536K | |
Total Submissions: 6241 | Accepted: 3776 |
The
look and say sequence is defined as follows. Start with any string of
digits as the first element in the sequence. Each subsequent element is
defined from the previous one by "verbally" describing the previous
element. For example, the string 122344111 can be described as "one 1,
two 2's, one 3, two 4's, three 1's". Therefore, the element that comes
after 122344111 in the sequence is 1122132431. Similarly, the string 101
comes after 1111111111. Notice that it is generally not possible to
uniquely identify the previous element of a particular element. For
example, a string of 112213243 1's also yields 1122132431 as the next
element.
Input
The
input consists of a number of cases. The first line gives the number of
cases to follow. Each case consists of a line of up to 1000 digits.
Output
For each test case, print the string that follows the given string.
Sample Input
3 122344111 1111111111 12345
Sample Output
1122132431 101 1112131415
Source
Rocky Mountain 2007
]#include <iostream> #include <cstdio> #include <cstring> using namespace std; int main() { char sequence[1005]; int number[2005]; int read; int last; int t; int i,j; while(scanf("%d",&t)!=EOF) { while(t--) { memset(number,0,sizeof(number)); scanf("%s",sequence); int len=strlen(sequence); j=0; for(i=0;i<len;i++) { if(i==0) { last=sequence[i]-'0'; read=last; number[j+1]=last; number[j]++; } else { read=sequence[i]-'0'; if(read==last) { number[j]++; } else { j+=2; number[j+1]=read; number[j]++; last=read; } } } for(i=0;i<=j;i+=2) { printf("%d%d",number[i],number[i+1]); } printf("/n"); } } return 0; }
相关文章推荐
- Look and Say-3438
- poj 3438 Look and Say
- POJ 3438 Look and Say (水题)
- HDU 1020 Encoding POJ 3438 Look and Say
- POJ 3438 Look and Say(我的水题之路——N个M的队列)
- POJ 3438 Look and Say(水~)
- POJ 3438 Look and Say G++
- 3438 Look and Say
- POJ 3438 Look and Say
- POJ 3438:Look and Say
- POJ 3438:Look and Say
- POJ 3438 Look and Say(水题)
- poj--3438--LOOK and SAY
- ZOJ 2886 — Look and Say(C++)
- sicily 1491 Look and Say
- 关于Look and Say序列的感想
- I00031 Look-and-say sequence
- zoj 2886 Look and Say
- LOOK AND SAY
- Problem Y-25 look and say