• leetcode翻转字符串541


    
    /**
     * <p>给定一个字符串 <code>s</code> 和一个整数 <code>k</code>,从字符串开头算起,每计数至 <code>2k</code> 个字符,就反转这 <code>2k</code> 字符中的前 <code>k</code> 个字符。</p>
     *
     * <ul>
     * <li>如果剩余字符少于 <code>k</code> 个,则将剩余字符全部反转。</li>
     * <li>如果剩余字符小于 <code>2k</code> 但大于或等于 <code>k</code> 个,则反转前 <code>k</code> 个字符,其余字符保持原样。</li>
     * </ul>
     *
     * <p>&nbsp;</p>
     *
     * <p><strong>示例 1:</strong></p>
     *
     * <pre>
     * <strong>输入:</strong>s = "abcdefg", k = 2
     * <strong>输出:</strong>"bacdfeg"
     * </pre>
     *
     * <p><strong>示例 2:</strong></p>
     *
     * <pre>
     * <strong>输入:</strong>s = "abcd", k = 2
     * <strong>输出:</strong>"bacd"
     * </pre>
     *
     * <p>&nbsp;</p>
     *
     * <p><strong>提示:</strong></p>
     *
     * <ul>
     * <li><code>1 &lt;= s.length &lt;= 10<sup>4</sup></code></li>
     * <li><code>s</code> 仅由小写英文组成</li>
     * <li><code>1 &lt;= k &lt;= 10<sup>4</sup></code></li>
     * </ul>
     * <div><div>Related Topics</div><div><li>双指针</li><li>字符串</li></div></div><br><div><li> 336</li><li> 0</li></div>
     */
    
    //leetcode submit region begin(Prohibit modification and deletion)
    class Solution {
        public static String reverseStr(String s, int k) {
    
            for (int i = 0; i < s.length(); i += (k * 2)) {
                if (i + k < s.length()) {
                    s = reverse(s, i, i + k - 1);
                } else {
                    s = reverse(s, i, s.length() - 1);
                }
            }
            return s;
        }
        //注意 swap之后要重新生成字符串
        static String reverse(String s, int start, int end) {
            char[] nums = s.toCharArray();
            char temp;
            while (start < end) {
                temp = nums[start];
                nums[start] = nums[end];
                nums[end] = temp;
                start++;
                end--;
            }
            return new String(nums);
        }
    }
    //leetcode submit region end(Prohibit modification and deletion)
    
    
  • 相关阅读:
    libreoffice转PDF文件
    window端设置elasticsearch的堆内存大小
    kubeadm 部署 K8S 1.21.5
    GitLab缓存问题
    【博客园美化】参考资料
    【Qt】QObject::connect: Cannot queue arguments of type 'QVector<int>' Make sure 'QVector<int>' is registered using qRegisterMetaType()解决办法
    【jeecgboot】启动报错
    验证下MarkDown
    nginx代理转发因http_version导致lua读取文件不存在问题
    怎么看mac是arm64还是x64
  • 原文地址:https://www.cnblogs.com/xiaoshahai/p/16571479.html
Copyright © 2020-2023  润新知