3 Saved 3 bytes by eliminating $b
source | link

PowerShell, 57 4444 41 bytes

(Crossed out 44 is still regular 44)

$b=1;$args|%0-notin($args|%{$b*=77-$_-$l-and$l-ne($l=$_)};$b)

Try it online!Try it online!

(OP has clarified that taking input as separate arguments is OK - saved 13 bytes ... saved another 3 bytes by eliminating $b)

We're looping through the input $args a digit at a time, using $b as our output holder. Each digit, we verify that the $last digit is -notequal to the current digit $_, and that 7-$_-$l is some number other than zero (which is truthy). ThatThose Boolean result isresults are encapsulated in parens and fed into the right-hand operand of the *=-notin'd into operator, checking against $b0. In other words, so if anytime duringthere is any False value anywhere in the tromp we have a falsey pairloop, the $b-notin will also be 0False from then on out. At the end, we put $bThat Boolean is left on the pipeline, and output is implicit.

Lengthy because of the $ requirement for variable names, and that Boolean commands -ne -and are verbose in PowerShell. Oh well.

PowerShell, 57 44 bytes

$b=1;$args|%{$b*=7-$_-$l-and$l-ne($l=$_)};$b

Try it online!

(OP has clarified that taking input as separate arguments is OK - saved 13 bytes)

We're looping through the input $args a digit at a time, using $b as our output holder. Each digit, we verify that the $last digit is -notequal to the current digit $_, and that 7-$_-$l is some number other than zero (which is truthy). That Boolean result is *='d into $b, so if anytime during the tromp we have a falsey pair, $b will be 0 from then on out. At the end, we put $b on the pipeline, and output is implicit.

Lengthy because of the $ requirement for variable names, and that Boolean commands -ne -and are verbose in PowerShell. Oh well.

PowerShell, 57 44 41 bytes

(Crossed out 44 is still regular 44)

0-notin($args|%{7-$_-$l-and$l-ne($l=$_)})

Try it online!

(OP has clarified that taking input as separate arguments is OK - saved 13 bytes ... saved another 3 bytes by eliminating $b)

We're looping through the input $args a digit at a time. Each digit, we verify that the $last digit is -notequal to the current digit $_, and that 7-$_-$l is some number other than zero (which is truthy). Those Boolean results are encapsulated in parens and fed into the right-hand operand of the -notin operator, checking against 0. In other words, if there is any False value anywhere in the loop, the -notin will also be False. That Boolean is left on the pipeline, and output is implicit.

Lengthy because of the $ requirement for variable names, and that Boolean commands -ne -and are verbose in PowerShell. Oh well.

2 Saved 13 bytes thanks to OP allowing separate input arguments
source | link

PowerShell, 5757 44 bytes

$b=1;[char[]]$args[0]|%{$b*=103-$_-$l-and$l-ne($l=$_)};$b

Try it online!

Takes input as a string. If we're allowed to take input as an array of digits (waiting for clarification from OP), then the following at 47 bytes works.

$b=1;$args[0]|%$b=1;$args|%{$b*=7-$_-$l-and$l-ne($l=$_)};$b

Try it online!Try it online!

In either case, we're(OP has clarified that taking input as separate arguments is OK - saved 13 bytes)

We're looping through the input $args a digit at a time, using $b as our output holder. Each digit, we verify that the $last digit is -notequal to the current digit $_, and that 7-$_-$l is some number other than zero (which is truthy). That Boolean result is *='d into $b, so if anytime during the tromp we have a falsey pair, $b will be 0 from then on out. At the end, we put $b on the pipeline, and output is implicit.

Lengthy because of the $ requirement for variable names, and that Boolean commands -ne -and are verbose in PowerShell. Oh well.

PowerShell, 57 bytes

$b=1;[char[]]$args[0]|%{$b*=103-$_-$l-and$l-ne($l=$_)};$b

Try it online!

Takes input as a string. If we're allowed to take input as an array of digits (waiting for clarification from OP), then the following at 47 bytes works.

$b=1;$args[0]|%{$b*=7-$_-$l-and$l-ne($l=$_)};$b

Try it online!

In either case, we're looping through the input a digit at a time, using $b as our output holder. Each digit, we verify that the $last digit is -notequal to the current digit $_, and that 7-$_-$l is some number other than zero (which is truthy). That Boolean result is *='d into $b, so if anytime during the tromp we have a falsey pair, $b will be 0 from then on out. At the end, we put $b on the pipeline, and output is implicit.

Lengthy because of the $ requirement for variable names, and that Boolean commands -ne -and are verbose in PowerShell. Oh well.

PowerShell, 57 44 bytes

$b=1;$args|%{$b*=7-$_-$l-and$l-ne($l=$_)};$b

Try it online!

(OP has clarified that taking input as separate arguments is OK - saved 13 bytes)

We're looping through the input $args a digit at a time, using $b as our output holder. Each digit, we verify that the $last digit is -notequal to the current digit $_, and that 7-$_-$l is some number other than zero (which is truthy). That Boolean result is *='d into $b, so if anytime during the tromp we have a falsey pair, $b will be 0 from then on out. At the end, we put $b on the pipeline, and output is implicit.

Lengthy because of the $ requirement for variable names, and that Boolean commands -ne -and are verbose in PowerShell. Oh well.

1
source | link

PowerShell, 57 bytes

$b=1;[char[]]$args[0]|%{$b*=103-$_-$l-and$l-ne($l=$_)};$b

Try it online!

Takes input as a string. If we're allowed to take input as an array of digits (waiting for clarification from OP), then the following at 47 bytes works.

$b=1;$args[0]|%{$b*=7-$_-$l-and$l-ne($l=$_)};$b

Try it online!

In either case, we're looping through the input a digit at a time, using $b as our output holder. Each digit, we verify that the $last digit is -notequal to the current digit $_, and that 7-$_-$l is some number other than zero (which is truthy). That Boolean result is *='d into $b, so if anytime during the tromp we have a falsey pair, $b will be 0 from then on out. At the end, we put $b on the pipeline, and output is implicit.

Lengthy because of the $ requirement for variable names, and that Boolean commands -ne -and are verbose in PowerShell. Oh well.