in reply to Find duplicate digits
Not very satisfying as a solution, but it works.
#! perl -slw use strict; m[ (?:^[^0]*0[^0]*0[^0]*$)| (?:^[^1]*1[^1]*1[^1]*$)| (?:^[^2]*2[^2]*2[^2]*$)| (?:^[^3]*3[^3]*3[^3]*$)| (?:^[^4]*4[^4]*4[^4]*$)| (?:^[^5]*5[^5]*5[^5]*$)| (?:^[^6]*6[^6]*6[^6]*$)| (?:^[^7]*7[^7]*7[^7]*$)| (?:^[^8]*8[^8]*8[^8]*$)| (?:^[^9]*9[^9]*9[^9]*$) ]x and print for '0000' .. '9999';
Update: ... but only for 4 digit numbers. By inverting the logic and only printing numbers that don't contain 3 repeated digits, it should work for numbers of any length.
#! perl -slw use strict; m[ (?:[^0]*0[^0]*0[^0]*0[^0]*)| (?:[^1]*1[^1]*1[^1]*1[^1]*)| (?:[^2]*2[^2]*2[^2]*2[^2]*)| (?:[^3]*3[^3]*3[^3]*3[^3]*)| (?:[^4]*4[^4]*4[^4]*4[^4]*)| (?:[^5]*5[^5]*5[^5]*5[^5]*)| (?:[^6]*6[^6]*6[^6]*6[^6]*)| (?:[^7]*7[^7]*7[^7]*7[^7]*)| (?:[^8]*8[^8]*8[^8]*8[^8]*)| (?:[^9]*9[^9]*9[^9]*9[^9]*) ]x or m[(?=(\d).*\1)] and print for '000000' .. '999999';
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Find duplicate digits
by Anonymous Monk on Feb 15, 2006 at 15:35 UTC | |
by BrowserUk (Patriarch) on Feb 15, 2006 at 15:39 UTC | |
|
Re^2: Find duplicate digits
by Anonymous Monk on Feb 15, 2006 at 15:40 UTC |