zoukankan      html  css  js  c++  java
  • Day16 String & exception作业

    作业:

    1. 判断一个字符串是否是回文串
    例如"abc"不是对称字符串,"aba"、"abba"、"aaa"、"mnanm"是对称字符串

    2. 统计大串中小串出现的次数
    举例:在字符串” woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun”中java出现了5次

    附加题:
    给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。
    注意:如果有多个最长回文串,返回其中一个即可

    示例 1:
    输入: "babad"
    输出: "bab"
    注意: "aba" 也是一个有效答案。
    示例 2:
    输入: "cbbd"
    输出: "bb"

    参考答案:

    1.

     2.

     3.

     1 public class Solution {
     2 
     3     /*
     4      * 该方法用来求得字符串s的最长回文子串
     5      */
     6     public String longestPalindrome(String s) {
     7         if (null == s) {
     8             return null;
     9         }
    10 
    11         if (s.length() == 1) {
    12             return s;
    13         }
    14         String longestPalindrome = "";
    15 
    16         for (int i = 0; i < s.length(); i++) {
    17 
    18             // 找到以第i个位置的字符为对称轴的最大回文子串
    19             String tmp1 = findsubPalinrome(s, i, i);
    20             if (tmp1.length() > longestPalindrome.length()) {
    21                 longestPalindrome = tmp1;
    22             }
    23 
    24             // 找到以第 i 个字符和第 i + 1个字符中间位置为对称轴的最大回文子串
    25             String tmp2 = findsubPalinrome(s, i, i + 1);
    26             if (tmp2.length() > longestPalindrome.length()) {
    27                 longestPalindrome = tmp2;
    28             }
    29         }
    30         return longestPalindrome;
    31     }
    32 
    33     /*
    34      * s为待判断的字符串 在[0, l]找回文串的左半部分 在[h, s.length - 1]找回文串的右半部分 找到的最长的回文子串
    35      */
    36     private String findsubPalinrome(String s, int l, int h) {
    37         char[] target = s.toCharArray();
    38         while (l >= 0 && h < s.length() && target[l] == target[h]) {
    39             l--;
    40             h++;
    41         }
    42         l++;
    43         h--;
    44         // 此时l指向了回文串最左端的字符位置,h指向了回文串最右端的位置,所以该回文串包含的字符个数为 h - l + 1
    45         return new String(target, l, h - l + 1);
    46     }
    47 }
  • 相关阅读:
    新闻发布项目——接口类(newsTbDao)
    新闻发布项目——接口类(commentDao)
    新闻发布项目——接口类(newsTbDao)
    新闻发布项目——接口类(UserDao)
    新闻发布项目——接口类(UserDao)
    新闻发布项目——接口类(UserDao)
    新闻发布项目——实体类(categoryTB)
    新闻发布项目——实体类(categoryTB)
    新闻发布项目——实体类(categoryTB)
    新闻发布项目——实体类(comment)
  • 原文地址:https://www.cnblogs.com/dust2017/p/12791515.html
Copyright © 2011-2022 走看看