zoukankan      html  css  js  c++  java
  • Leetcode 3. Longest Substring Without Repeating Characters(string 用法 水题)

    3. Longest Substring Without Repeating Characters
    Medium

    Given a string, find the length of the longest substring without repeating characters.

    Example 1:

    Input: "abcabcbb"
    Output: 3 
    Explanation: The answer is "abc", with the length of 3. 
    

    Example 2:

    Input: "bbbbb"
    Output: 1
    Explanation: The answer is "b", with the length of 1.
    

    Example 3:

    Input: "pwwkew"
    Output: 3
    Explanation: The answer is "wke", with the length of 3. 
                 Note that the answer must be a substring, "pwke" is a subsequence and not a substring.


     1 class Solution {
     2 public:
     3     int lengthOfLongestSubstring(string s) {
     4         map<char,int> ext;
     5         int id_now = 0;
     6         int len = s.length();
     7         int ans = 0,cnt = 0;
     8         while(id_now<len){
     9             if(ext.find(s[id_now])!=ext.end()){
    10                 id_now = ext[s[id_now]]+1;
    11                 ans = max(ans,cnt);
    12                 ext.clear();
    13                 cnt = 0;
    14             }
    15             else{
    16                 ext[s[id_now]] = id_now;
    17                 id_now+=1;
    18                 cnt+=1;
    19             }
    20         }
    21         ans = max(ans,cnt);
    22         return ans;
    23     }
    24 };

    #include <string>// 注意是<string>,不是<string.h>,带.h的是C语言中的头文件
    using std::string;
    using std::wstring;

    using namespace std;

    string类的大部分函数:
    begin 得到指向字符串开头的Iterator
    end 得到指向字符串结尾的Iterator
    rbegin 得到指向反向字符串开头的Iterator
    rend 得到指向反向字符串结尾的Iterator
    size 得到字符串的大小
    length 和size函数功能相同
    max_size 字符串可能的最大大小
    capacity 在不重新分配内存的情况下,字符串可能的大小
    empty 判断是否为空
    operator[] 取第几个元素,相当于数组
    c_str 取得C风格的const char* 字符串
    data 取得字符串内容地址
    operator= 赋值操作符
    reserve 预留空间
    swap 交换函数
    insert 插入字符
    append 追加字符
    push_back 追加字符
    operator+= += 操作符
    erase 删除字符串
    clear 清空字符容器中所有内容
    resize 重新分配空间
    assign 和赋值操作符一样
    replace 替代
    copy 字符串到空间
    find 查找
    rfind 反向查找
    find_first_of 查找包含子串中的任何字符,返回第一个位置
    find_first_not_of 查找不包含子串中的任何字符,返回第一个位置
    find_last_of 查找包含子串中的任何字符,返回最后一个位置
    find_last_not_of 查找不包含子串中的任何字符,返回最后一个位置
    substr 得到字串
    compare 比较字符串
    operator+ 字符串链接
    operator== 判断是否相等
    operator!= 判断是否不等于
    operator< 判断是否小于
    operator>> 从输入流中读入字符串
    operator<< 字符串写入输出流
    getline 从输入流中读入一行

  • 相关阅读:
    我要翻译《Think Python》- 004 第二章 变量, 表达式和语句
    我要翻译《Think Python》-003 第一章 编程之道
    我要翻译《Think Python》-002 贡献列表 & 目录部分
    我要翻译《Think Python》
    ORA-12514 解决方法
    好玩的东西
    sublime HtmlPrettify
    [转]bing壁纸天天换 初识shell魅力
    nginx+lua+redis 处理APK包替换
    算法整理
  • 原文地址:https://www.cnblogs.com/shanyr/p/11405749.html
Copyright © 2011-2022 走看看