907人阅读 评论(0)

# 问题描述

  var k = new Arith("three");
k.add("seven"); //返回 "ten"

• class
• __construct
• array
• switch case

# 解决方案

## 数组取值array_flip反转键值


class Arith {
private $number; public$numbers = [
'zero' => 0, 'one' => 1, 'two' => 2, 'three' => 3, 'four' => 4, 'five' => 5,
'six' => 6, 'seven' => 7, 'eight' => 8, 'nine' => 9, 'ten' => 10, 'eleven' => 11,
'twelve' => 12, 'thirteen' => 13, 'fourteen' => 14, 'fifteen' => 15, 'sixteen' => 16,
'seventeen' => 17, 'eighteen' => 18, 'nineteen' => 19, 'twenty' => 20
];

public function __construct(string $number) {$this->number = $number; } public function add(string$number): string {
$sum =$this->get($this->number) +$this->get($number);$flipped = array_flip($this->numbers); return$flipped[$sum]; } public function get(string$number): int {
// can convert to lower
return (empty($this->numbers[$number])) ? 0 : $this->numbers[$number];
}
}

## const定义关系array_search查找对应关系

class Arith{
private $i; const A = [ 'zero' => 0, 'one' => 1, 'two' => 2, 'three' => 3, 'four' => 4, 'five' => 5, 'six' => 6, 'seven' => 7, 'eight' => 8, 'nine' => 9, 'ten' => 10, 'eleven' => 11, 'twelve' => 12, 'thirteen' => 13, 'fourteen' => 14, 'fifteen' => 15, 'sixteen' => 16, 'seventeen' => 17, 'eighteen' => 18, 'nineteen' => 19, 'twenty' => 20 ]; public function __construct(string$i)
{
$this->i = self::A[$i];
}

public function add(string $v) { return array_search($this->i + self::A[$v], self::A); } }  ## 数组的索引查找关系  class Arith{ private$_numbers = ["zero" => 0, "one" => 1, "two" => 2, "three" => 3,
"four" => 4, "five" => 5, "six" => 6, "seven" => 7, "eight" => 8,
"nine" => 9, "ten" => 10, "eleven" => 11];

private $_words = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen", "twenty"]; private$_word = '';

public function __construct($word) {$this->_word = $word; } public function add($word) {
return $this->_words[$this->_numbers[$this->_word] +$this->_numbers[$word]]; } } ## switch case确立关系 class Arith { protected$num;

//初始化数据

public function __construct($num) {$this->num = $this->_tonNum($num);

}

private function _tonNum($num) {$num_num = 0;
switch ($num) { case "zero":$num_num = 0;
break;
case "one":
$num_num = 1; break; case "two":$num_num = 2;
break;
case "three":
$num_num = 3; break; case "four":$num_num = 4;
break;
case "five":
$num_num = 5; break; case "six":$num_num = 6;
break;
case "seven":
$num_num = 7; break; case "eight":$num_num = 8;
break;
case "nine":
$num_num = 9; break; case "ten":$num_num = 10;
break;
case "eleven":
$num_num = 11; break; case "twelve":$num_num = 12;
break;
case "thirteen":
$num_num = 13; break; case "fourteen":$num_num = 14;
break;
case "fifteen":
$num_num = 15; break; case "sixteen":$num_num = 16;
break;
case "seventeen":
$num_num = 17; break; case "eighteen":$num_num = 18;
break;
case "nineteen":
$num_num = 19; break; case "twenty":$num_num = 20;
break;
}
return $num_num; } /** * 转换成文字 * @param$num
*/
public function tostr($num) {$num_num = "";
switch ($num) { case 0:$num_num = "zero";
break;
case 1:
$num_num = "one"; break; case 2:$num_num = "two";
break;
case 3:
$num_num = "three"; break; case 4:$num_num = "four";
break;
case 5:
$num_num = "five"; break; case 6:$num_num = "six";
break;
case 7:
$num_num = "seven"; break; case 8:$num_num = "eight";
break;
case 9:
$num_num = "nine"; break; case 10:$num_num = "ten";
break;
case 11:
$num_num = "eleven"; break; case 12:$num_num = "twelve";
break;
case 13:
$num_num = "thirteen"; break; case 14:$num_num = "fourteen";
break;
case 15:
$num_num = "fifteen"; break; case 16:$num_num = "sixteen";
break;
case 17:
$num_num = "seventeen"; break; case 18:$num_num = "eighteen";
break;
case 19:
$num_num = "nineteen"; break; case 20:$num_num = "twenty";
break;
}
return $num_num; } //增加的方法 public function add($add_num)
{
//做加法
$add_num =$this->_tonNum($add_num);$re = $this->tostr($add_num + $this->num); //转换 return$re;
}

}

# 总结

0
2

个人资料
• 访问：640811次
• 积分：9031
• 等级：
• 排名：第2476名
• 原创：297篇
• 转载：13篇
• 译文：4篇
• 评论：81条
博客专栏
 智能合约Solidity 文章：32篇 阅读：94153
 PMP学习笔记 文章：35篇 阅读：52572
 PHP问题集锦 文章：34篇 阅读：118302
 团队开发那些事儿 文章：30篇 阅读：155845
微信订阅号
欢迎加入QQ群
玩家老黄历(微信小程序)
谢谢支持~
最新评论