leetcode刷题记录之1108

1108、IP 地址无效化

给你一个有效的 IPv4 地址 address,返回这个 IP 地址的无效化版本。
所谓无效化 IP 地址,其实就是用 “[.]” 代替了每个 “.”。
示例 1:

输入:address = "1.1.1.1"
输出:"1[.]1[.]1[.]1"

示例 2:

输入:address = "255.100.50.0"
输出:"255[.]100[.]50[.]0"

提示:

  • 给出的 address 是一个有效的 IPv4 地址

难度:简单  题目地址:https://leetcode-cn.com/problems/defanging-an-ip-address/

1、C语言代码:
char * defangIPaddr(char * address){
   char *rec = malloc(23 * sizeof(char));
   int j = 0;
   for(int i = 0; address[i] != '\0'; i++)
   {
       if (address[i] != '.')
           rec[j++] = address[i];
       else
       {
           rec[j++] = '[';
           rec[j++] = '.';
           rec[j++] = ']';
       }
   }
   rec[j] = '\0';
   return rec;
}

解释: 首先分配23个char大小的内存给rec数组,遍历address字符串数组,不等于’.‘时将address原字符加入rec数组中,等于’.'时,将[.]加入数组,最后返回字符串。

知识点回顾:’‘代表字符,""是代码一个字符串。’\0’是一个字符串的结束符。

2、Java代码:
class Solution {
   public String defangIPaddr(String address) {
       String a = "" + address.charAt(0);
       for(int i = 1;i < address.length();i++){
         if(address.charAt(i) == '.'){
           a +="[.]";
         }else
           a += address.charAt(i);
       }
     return a;
   }
}

解释: 创建一个新的字符串a,先address中首字符加入到a中,遍历address,不等于’.‘时将address原字符加入a数组中,等于’.'时,将[.]加入数组,最后返回字符串。

知识点回顾:
1、charAt() 方法用于返回指定索引处的字符。索引范围为从 0 到 length() - 1。
语法:public char charAt(int index)
index:字符的索引。
返回值:返回指定索引处的字符。

3、Python代码:
class Solution:
   def defangIPaddr(self, address: str) -> str:
     return address.replace('.','[.]')

解释: 在address中找到’.‘用’[.]'代替。

知识点回顾:
1、replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。
语法:str.replace(old, new[, max])
old:将被替换的子字符串。
new:新字符串,用于替换old子字符串。
max:可选字符串, 替换不超过 max 次。
返回值:返回字符串中的 old(旧字符串) 替换成 new(新字符串)后生成的新字符串,如果指定第三个参数max,则替换不超过 max 次。

4、JavaScript代码:
/**
* @param {string} address
* @return {string}
*/
var defangIPaddr = function(address) {
   address=address.split("");
   for(let i = 0;i < address.length;i++){
       if(address[i] === '.'){
           address[i] = '[.]';//写"[.]"也对
       }
   }
   return address.join("");
};

__解释:__先把字符串address分割成字符串数组,遍历address,等于’.‘时用’[.]‘代替’.’,最后把字符串数组中的元素放回address中,返回。

知识点回顾:
1、split() 方法用于把一个字符串分割成字符串数组。
语法:stringObject.split(separator,howmany)
separator:必需。字符串或正则表达式,从该参数指定的地方分割 stringObject。
howmany:可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。
返回值:一个字符串数组。该数组是通过在 separator 指定的边界处将字符串 stringObject 分割成子串创建的。返回的数组中的字串不包括 separator 自身。
但是,如果 separator 是包含子表达式的正则表达式,那么返回的数组中包括与这些子表达式匹配的字串(但不包括与整个正则表达式匹配的文本)。
注释:如果把空字符串 ("") 用作 separator,那么 stringObject 中的每个字符之间都会被分割。
注释:String.split() 执行的操作与 Array.join 执行的操作是相反的。
2、join() 方法用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的。
语法: arrayObject.join(separator)
separator:可选。指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符。
返回值:返回一个字符串。该字符串是通过把 arrayObject 的每个元素转换为字符串,然后把这些字符串连接起来,在两个元素之间插入 separator 字符串而生成的。
3、JavaScript中==和===的区别:
双等号==:
  (1)如果两个值类型相同,再进行三个等号(===)的比较。
  (2)如果两个值类型不同,也有可能相等,需根据以下规则进行类型转换在比较:
    1)如果一个是null,一个是undefined,那么相等。
    2)如果一个是字符串,一个是数值,把字符串转换成数值之后再进行比较。
三等号===:
  (1)如果类型不同,就一定不相等
  (2)如果两个都是数值,并且是同一个值,那么相等;如果其中至少一个是NaN,那么不相等。(判断一个值是否是NaN,只能使用isNaN( ) 来判断)
  (3)如果两个都是字符串,每个位置的字符都一样,那么相等,否则不相等。
  (4)如果两个值都是true,或是false,那么相等。
  (5)如果两个值都引用同一个对象或是函数,那么相等,否则不相等。
  (6)如果两个值都是null,或是undefined,那么相等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值