热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【LeetCode】434.NumberofSegmentsinaString解题报告(Python)

作者:负雪明烛id:fuxuemingzhu个人博客:http:fuxuemingzhu.cn目录题目描述题目大意解题方法统计正则表达式字

作者: 负雪明烛
id: fuxuemingzhu
个人博客: http://fuxuemingzhu.cn/



目录

    • 题目描述
    • 题目大意
    • 解题方法
      • 统计
      • 正则表达式
      • 字符串分割
    • 日期

题目地址:https://leetcode.com/problems/number-of-segments-in-a-string/#/description

题目描述

Count the number of segments in a string, where a segment is defined to be a contiguous sequence of non-space characters.

Please note that the string does not contain any non-printable characters.

Example:

Input: "Hello, my name is John"
Output: 5

题目大意

字符串中有多少个不包含空字符的子字符串。

解题方法


统计

这个题方法应该自己使用过的,不过是倒着来。回想自己以前在每个单词后面输入一个空格,但是行尾不要空格的时候怎么做的?不就是判断第一个单词的前面不打空格,在之后的所有单词的前面打了一个空格。这个题的思路是不是倒着来?

判断某个单词的开始的字符前面是不是空格,如果是字符串的第一个字符也会把技术加1,这样就能统计出所有用空格分割的字符串段的个数。

public class Solution {public int countSegments(String s) {int count &#61; 0;for(int i &#61; 0; i < s.length(); i&#43;&#43;){if(s.charAt(i) !&#61; &#39; &#39; && (i &#61;&#61; 0 || s.charAt(i - 1) &#61;&#61; &#39; &#39;)){count&#43;&#43;;}}return count;}
}

正则表达式

正则\s表示匹配空格&#xff0c;&#43;表示匹配一次或者任意多次。所以有以下代码。

public int countSegments(String s) {String trimmed &#61; s.trim();if (trimmed.length() &#61;&#61; 0) return 0;else return trimmed.split("\\s&#43;").length;
}

python版本&#xff1a;

class Solution(object):def countSegments(self, s):""":type s: str:rtype: int"""s &#61; re.sub("\s&#43;", " ", s)s &#61; s.strip()if not s: return 0return len(s.split(" "))

另外&#xff0c;如果\S就是匹配所有的非空字符&#xff0c;所以我们只要知道有多少个匹配就好了。

class Solution(object):def countSegments(self, s):""":type s: str:rtype: int"""return len(re.findall("\S&#43;", s))

字符串分割

python的split()函数&#xff0c;默认的参数就是按照连续空格进行分割。注意&#xff0c;千万不要写参数为" "

class Solution(object):def countSegments(self, s):""":type s: str:rtype: int"""return len(s.split())

日期

2017 年 5 月 &#xff15; 日
2018 年 11 月 24 日 —— 周六快乐


推荐阅读
  • PHP 过滤器详解
    本文深入探讨了 PHP 中的过滤器机制,包括常见的 $_SERVER 变量、filter_has_var() 函数、filter_id() 函数、filter_input() 函数及其数组形式、filter_list() 函数以及 filter_var() 和其数组形式。同时,详细介绍了各种过滤器的用途和用法。 ... [详细]
  • Ihaveastringwithquotesaroundthepathasfollows:我在路径周围有一个带引号的字符串,如下所示:C:\ProgramFiles(x ... [详细]
  • 本文详细介绍了如何在 Windows 环境下使用 node-gyp 工具进行 Node.js 本地扩展的编译和配置,涵盖从环境搭建到代码实现的全过程。 ... [详细]
  • 解决C++编译错误C3867的方法
    本文详细介绍了在不同版本的Visual Studio中,如何正确处理成员函数指针以避免编译错误C3867。同时,提供了一个具体的代码示例及其优化方案。 ... [详细]
  • 深入理解Redis的数据结构与对象系统
    本文详细探讨了Redis中的数据结构和对象系统的实现,包括字符串、列表、集合、哈希表和有序集合等五种核心对象类型,以及它们所使用的底层数据结构。通过分析源码和相关文献,帮助读者更好地理解Redis的设计原理。 ... [详细]
  • 使用Pandas高效读取SQL脚本中的数据
    本文详细介绍了如何利用Pandas直接读取和解析SQL脚本,提供了一种高效的数据处理方法。该方法适用于各种数据库导出的SQL脚本,并且能够显著提升数据导入的速度和效率。 ... [详细]
  • 本文详细探讨了 Django 的 ORM(对象关系映射)机制,重点介绍了其如何通过 Python 元类技术实现数据库表与 Python 类的映射。此外,文章还分析了 Django 中各种字段类型的继承结构及其与数据库数据类型的对应关系。 ... [详细]
  • 解决Python中 'NoneType' 对象无属性 'find_all' 错误
    本文详细探讨了在Python编程中遇到的常见错误——'NoneType'对象没有属性'find_all',并深入分析其原因及解决方案。通过理解find_all函数的工作原理和常见用法,帮助读者避免类似问题。 ... [详细]
  • 实用正则表达式有哪些
    小编给大家分享一下实用正则表达式有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下 ... [详细]
  • 本文详细介绍了如何使用Python的re库进行正则表达式匹配,特别是针对URL中的特定参数提取。适合初学者理解和应用。 ... [详细]
  • 本文详细介绍了如何准备和安装 Eclipse 开发环境及其相关插件,包括 JDK、Tomcat、Struts 等组件的安装步骤及配置方法。 ... [详细]
  • 深入解析Nginx中的Location指令及其属性
    本文将详细探讨Nginx配置文件中关键的location指令,包括其三种匹配方式(精准匹配、普通匹配和正则匹配),以及如何在实际应用中灵活运用这些匹配规则。此外,还将介绍location下的重要子元素如root、alias和proxy_pass,并解释相关参数的使用方法。 ... [详细]
  • 在Java中,this是一个引用当前对象的关键字。如何通过this获取并显示其所指向的对象的属性和方法?本文详细解释了this的用法及其背后的原理。 ... [详细]
  • 本文介绍如何在SQL Server中对Name列进行排序,使特定值(如Default Deliverable Submission Notification)显示在结果集的顶部。 ... [详细]
  • 尽管深度学习带来了广泛的应用前景,其训练通常需要强大的计算资源。然而,并非所有开发者都能负担得起高性能服务器或专用硬件。本文探讨了如何在有限的硬件条件下(如ARM CPU)高效运行深度神经网络,特别是通过选择合适的工具和框架来加速模型推理。 ... [详细]
author-avatar
周同学天天爬十楼7634
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有